Мой вопрос является продолжением этого.
В прошлых версиях FindBugs можно было использовать @DefaultAnnotation(Nonnull.class)
или @DefaultAnnotationForFields(Nonnull.class)
, чтобы указать, что все поля в пакете должны рассматриваться как @Nonnull
. В текущей версии FindBugs (2.0), @DefaultAnnotation
и @DefaultAnnotationForFields
устарели, и мы все должны использовать JSR-305. Но JSR-305, похоже, не охватывает все обложки (теперь устаревших) FindBugs.
javadoc предлагает несколько альтернатив:
-
@ParametersAreNonnullByDefault
. Это (очевидно) применимо только к параметрам, а не к полям-членам. -
@CheckReturnValue
, когда применяется к типу или пакету. Опять же, это не относится к полям участников. -
@TypeQualifierDefault
. Возможно, это может делать то, что я хочу, но я не понимаю, как это работает, и я не могу найти никакой документации или примеров по ее использованию или намерению, кроме некоторого загадочного javadoc. Я думаю, что это поможет мне создать собственные аннотации, но могу ли я быть уверенным, что все инструменты (FindBugs, Eclipse и т.д.) Будут правильно интерпретировать эту новую аннотацию (или даже вообще)?
javadoc не содержит никаких подсказок о том, как справиться с его устареванием.
Итак, используя текущие версии FindBugs и/или JSR-305, как я должен указывать, что все поля членов в определенном пакете (или даже в определенном классе) должны рассматриваться как @Nonnull
? Возможно ли это?