Каков статус JSR 305?

101

Я видел вопрос JSR305 против JSR308 (аннотации типа Java) - что будет стандартом? и я понимаю разницу между JSR 308 и JSR 305 .

Я также понимаю, что в настоящее время 308 намечено на Java 7, а 305 - нет, и мне любопытно узнать об общем статусе 305.

В частности, я использую Google Collections и JSR-305 в некоторых своих проектах (аналогично тому, что отстаивает один из лучших практик Guice ), и мне было интересно, есть ли более дружественный к «будущему направлению» подход, который я должен использовать. вместо. Я планирую также спросить об этом в группе JSR-305, но у этой группы мало активности, и мне просто интересно, есть ли у кого-нибудь здесь дополнительная информация.

Чарли Коллинз
источник
1
Я бы принял ответ, который вы оставили Кевину, но я не могу найти в этих статьях места, где бы однозначно говорилось, что они будут на Java 7 или нет? (И я вкратце просмотрел эту информацию, прежде чем опубликовать вопрос.) Видели ли вы там конкретное упоминание о том, что они будут включены (как указано в вашем ответе)? Заранее спасибо за вашу помощь.
Чарли Коллинз
1
По прошествии этого времени и некоторых других попыток выяснить, что именно происходит, я награждаю лучшим ответом, единственным ответом, отличием «ответ». ;)
Чарли Коллинз
Java 9: stackoverflow.com/questions/37598775/…
Кристоф Русси
Марк Рейнхольд недавно прокомментировал другой пост SO, что «JSR 305, который стандартизировал бы javax.annotation.NonNull, так и не был завершен, потому что его лидерство в спецификации ушло в самоволку».
Flow

Ответы:

67

Как описано в этом ответе , JSR-305 предлагает новые аннотации, такие как @NonNull , а JSR-308 предлагает разрешить аннотации в новых местах, например, в общих объявлениях.

Цитирование страницы JSR 308 :

… Этот документ не предлагает никаких аннотаций, просто указывает, где они могут появиться в коде Java.

JSR 308 (аннотации в новых местах) включен в java 8 под JEP 104 .

По состоянию на 2017 год JSR 305 (новые аннотации) продолжает иметь официальный статус «Неактивный». Вопрос о его статусе в группе Google был без ответа с 2010 года.

Существует ссылку реализация JSR-305 аннотации здесь , которая используется во многих проектах, в том числе гуавы. С maven вы можете использовать эталонную реализацию JSR-305, добавив это в свой pom:

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.0</version>
</dependency>
мосты
источник
2
ссылка на com.google.code.findbugs: jsr305 на maven central (последняя версия теперь 3.0.0)
Паоло Фулгони
Вы можете использовать ту же версию, что и для findbugs-maven-plugin(от org.codehaus.mojo), чтобы синхронизировать оба.
Кристоф Русси,
2
Java 9 имеет полную функциональность, но еще не выпущена, и похоже, что JSR-305 не включен. Был ли еще один JSR, который добавил похожие аннотации?
dlamblin
9

Java 8 описывается JSR 337: спецификация достигла окончательного статуса: см. Здесь .

  • JSR 308 определенно в
  • JSR 305 определенно отсутствует
Глен Бест
источник
1

Согласно блогу Алекса Миллерса о Java 7 , JSR-308 (и 305) планируется включить в Java 7. Возможно, он появится здесь и предоставит вам больше информации.

Кевин
источник
51
Ни один из них не вошел в Java 7.
Майлз
7
JSR308 будет в Java 8, но (март 2013 г.) JSR 305 все еще бездействует.
Морис Нафталин