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