Мой вопрос следует -до этого .
В прошлых версиях 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
? Это вообще возможно?