Який статус JSR 305?


101

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

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

Зокрема, я використовую колекції Google та JSR-305 в деяких своїх проектах (аналогічно тому, що виступає один із прихильників найкращих практик Guice ), і мені було цікаво, чи є більше "майбутній напрямок" - дружній підхід, який я повинен використовувати замість цього. Я планую також запитати про це у групі JSR-305, але ця група не має великої активності, і мені було просто цікаво, чи хтось тут має більше інформації.


1
Я прийняв би відповідь, яку ви залишили Кевін, але я не можу знайти місце в тих статтях, де напевно сказано, що вони будуть в Java 7, чи ні? (І я переглянув цю інформацію, коротко, перш ніж надсилати запитання.) Чи бачили ви там конкретну згадку про те, що вони будуть включені (як зазначено у вашій відповіді)? Заздалегідь дякую за вашу допомогу.
Чарлі Коллінз

1
Після цього багато часу і деяких інших зусиль, щоб з'ясувати, що саме відбувається, я присуджую найкращу відповідь, єдину відповідь, відмінність "відповідь". ;)
Чарлі Коллінз


Нещодавно Марк Рейнгольд прокоментував ще одну посаду про те, що "JSR 305, який би стандартизував javax.annotation.NonNull, ніколи не завершений, оскільки його специфікація пройшла AWOL".
Потік

Відповіді:


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, додавши це до своєї пам’яті:

<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 не включений. Чи був ще один СПР, який додав подібні примітки?
dlamblin



1

Згідно з блогом Алекса Міллера Java 7 , JSR-308 (і 305) планується перейти на Java 7. Можливо, він з’явиться тут і дасть вам більше інформації.


51
Жоден з них не перетворився на Java 7.
Майлз

7
JSR308 буде на Java 8, але (березень 2013 р.) JSR 305 все ще не працює.
Моріс Нафталін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.