Какую аннотацию @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 но я с нетерпением жду других взглядов ...

[Отказ от ответственности] Я знаю, что вопрос был задан здесь, но не был дан ответ (или ответ был неправильным / неполным / устаревшим)[/ Отказ от ответственности]

Ответы на вопрос(1)

Ваш ответ на вопрос