Сокращение количества нулевых аннотаций может быть достигнуто с помощью подходящей аннотации по умолчанию.
Следующее относится к аннотациям от org.eclipse.jdt.annotation_2.x
:
В частности @org.eclipse.jdt.annotation.NonNullByDefault
может влиять на типы в различных позициях, включая аргументы типов.
Так что если вы напишите:
@NonNullByDefault
Map<String, String> someMethod(Map<String,Map<String,String>> arg) { ...
, это действительно будет интерпретировано как
@NonNull Map<@NonNull String, @NonNull String> someMethod(@NonNull Map<@NonNull String, @NonNull Map<@NonNull String, @NonNull String>> arg) {
Возможно даже точная настройка эффекта @NonNullByDefault
, и его можно применять к отдельным методам или целым классам, пакетам или модулям.
Еслиподпись по-прежнему содержит несколько обнуляемых типов, которые необходимо аннотировать индивидуально как @Nullable
, чтобы переопределить значение по умолчанию, но эти исключения должны быть намного меньше, чем ненулевые типы.Обратите внимание, что как @NonNull
, так и @Nullable
могут быть присоединены к типам во всех соответствующих позициях, опять же, включая аргументы типов.
Общая документация о том, как Eclipse интерпретирует нулевые аннотации с учетом обобщений, может быть найдена вонлайн справка .