Есть ли аннотация @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 не реализует его.