Какова ситуация в 2013 году с аннотациями @notnull в Java?
Похоже, что существует довольно много разных аннотаций, чтобы указать статус nullability параметров метода и возвращаемые значения в Java, и ситуация развивается.
Каковы наилучшие практики в 2013 году для аннотирования моих методов обнуления?
Я знаю об этом вопросе, но это с 3 лет назад, и я подозреваю, что ситуация изменилась с тех пор:
Какую @NotNull аннотацию Java я должен использовать?
Я лично использую IntelliJ IDEA, но буду надеяться на решение, которое не связывает мой проект с этой IDE. Я использую Maven для управления зависимостями.
Ответы
Ответ 1
AFAIK, почти стандартная библиотека - com.google.code.findbugs: jsr305. Например, тот, который используется Гуавой. И он поддерживается FindBugs, который, вероятно, является наиболее используемым инструментом анализа байт-кода.
IntelliJ также поддерживает эти аннотации.
Ответ 2
Причина в том, что существует очень много различий между защитным программированием и проверкой ввода.
@NotNull - это система проверки java bean JSR 303. @Nullable - это JSR 305, который предназначен для защитного программирования/проектирования по контракту.
Найти ошибки guava one - это defacto JSR 305. Hibernate предлагает довольно много defacto JSR 303.