Какую аннотацию @NonNull Java использовать
ЧтоЛучший «NonNull» аннотация?
"Лучший" в том смысле
Стандартный способ, например будущее (например, поддержка стандартным JDK и т. д.)Поддержка IDE (отображается в документе Java, чтобы указать использование для разработчиков)Поддержка инструментами статического анализа, такими как findbugsПоддержка анализа времени выполненияВот как выглядит мир в настоящее время - мы ценим любое дальнейшее понимание:
javax.validation.constraints.NotNull
(Документы)
+ пакет javax, таким образом, кажется перспективным
- часть JEEне JSE. В JSE надоимпортировать дополнительные библиотеки.
- Не поддерживается инструментами статического анализа (только проверка во время выполнения)
edu.umd.cs.findbugs.annotations.NonNull
(документы)
- внешняя библиотека а неjavax
пакет
- осуждается начиная с findbugs версии 3.X
+ используется для статического анализа (findbugs и, следовательно, Sonar)
javax.annotation.Nonnull
(документы)
+ используется для статического анализа (в findbugs)
- JSR-305 неактивен / мертв / неизвестен как насписок рассылки fb указано. Автор Билл Пью, даже если его прямо спросить, не прокомментировал состояние в течение многих лет ...
org.eclipse.jdt.annotation_2.0.0
(документы, интереснопрезентация)
+ используется для статического анализа (хотя в eclipse нет в findbugs)
- запатентованный для затмения (не пытался использовать их отдельно)
org.jetbrains.annotations.NotNull
(документы)
+ используется для статического анализа (но не в findbugs)
- принадлежащий IntelliJ (но также общедоступный в виде баночки)
lombok.NonNull
(документы)
+ используется для управления генерацией кода
- запатентованная аннотация
android.support.annotation.NonNull
(документы)
+ статический анализ в андроид студии
- специфическая для Android аннотация
org.checkerframework.checker.nullness.qual.NonNull
(документы)
+ JSR308 реализация, которая является частью Java8 (которая действительно вводила возможность писать аннотации в разных частях вашего кода, но не вводила новые аннотации)
+ используется для статического кода (но не для поиска ошибок)а также анализ времени выполнения
- внешняя библиотека, однако, кажется,одобрил Ява люди
В настоящее время я бы склонялся кChecker Framework но я с нетерпением жду других взглядов ...
[Отказ от ответственности] Я знаю, что вопрос был задан здесь, но не был дан ответ (или ответ был неправильным / неполным / устаревшим)[/ Отказ от ответственности]