Есть ли аннотация @NonNullByDefault в идее?

Eclipse имеет @NonNullByDefault аннотация, которая рассматривает все значения как @NonNull Если вы явно не аннотируете их как @Nullable.

есть ли эквивалентная опция в IntelliJ IDEA, или вы всегда должны использовать @Nonnull?

2 ответов


версия идеи 14 будет включать поддержку аннотации JSR 305 "@TypeQualifierDefault", которая позволяет пользователю создавать пользовательскую аннотацию, которая будет использоваться в объявлении пакета в package-info.java-файл, который указывает, что все в этом пакете (не только параметры, но и возвращаемые значения метода, локальные переменные и т. д.) будет неявно аннотироваться как не разрешающее значения null.

к сожалению, это (в настоящее время) рекурсивно не влияет на подпакеты, поэтому каждый subpackage должен иметь пакет-информацию.java-файл тоже, объявляя этот подпакет для использования аннотации.

см. здесь для деталей и примера использования:

http://youtrack.jetbrains.com/issue/IDEA-125281

обратите внимание, что это уже реализовано в сборках программы раннего доступа (EAP).


нет, в настоящее время он не поддерживается IDEA.

в качестве доказательства см. ссылку Лены об открытом запросе функции на разрешить 'NotNull' как поведение элемента по умолчанию для данного класса или пакета.

возможно, аналогичная функция станет стандартной с JSR-305, которые могут включать @ParametersAreNonnullByDefault аннотация, а также противоположная аннотация @ParametersAreNullableByDefault. Обратите внимание, что в отличие от @NonNullByDefault, возвращаемые значения не охватывается этими двумя аннотациями. Таким образом, вы все равно должны были аннотировать возвращаемое значение explicitely.

все это не меняет текущее состояние, хотя. Ни JSR-305 не стал стандартом, ни IDEA не реализует его.