Устаревшие аннотации в FindBugs 2.0

Глядя на список аннотаций в FindBugs 2.0, я вижу, что многие из них устарели.

Некоторые из них (@CheckForNull, @NonNull и т.д.) устарели, поскольку они имеют эквивалентные аннотации JSR-305. Хорошо, наконец, решить дилемму о том, какой набор аннотаций использовать.

Но некоторые примечания, специфичные для FindBugs, такие как @DefaultAnnotation и @DefaultAnnotationForFields, также были устаревшими, и я не могу найти никакого объяснения, что использовать на их месте. Я пытаюсь перенести базу кода, которая сильно использует эти аннотации, и я немного застрял.

Я вижу, что JSR-305 имеет @ParametersAreNonnullByDefault, который я мог бы использовать для замены некоторых экземпляров @DefaultAnnotationForParameters, но это не будет охватывать все случаи.

Я пропустил что-то большое здесь? Должен ли я использовать какой-либо файл настроек или что-то еще, вместо аннотаций?

Ответ 1

(примечание: см. связанную статью в Должны ли аннотации в jar305.jar быть предпочтительными по сравнению с аналогичными аннотациями в annotation.jar для FindBugs?)

От автора PDF (здесь), на стр. 51:

JSR-305 определяет только ParametersAreNonnullByDefault, но больше можно определить вне JSR-305

• и могут быть интерпретированы статическими анализаторами которые интерпретируют аннотации JSR-305

... поэтому вы можете сами определить его и присвоить ему то же имя, что и тот, который вы заменяете, и он должен работать нормально, поскольку FindBugs запускает аннотации по имени (и, вероятно, предпочитает JSR-305 аннотации, возможно, из-за отклонения в частности).

Например, здесь является источником @ParametersAreNonnullByDefault.

Для получения дополнительной информации вам может потребоваться отправить по электронной почте автора JSR-305 и FindBugs: Bill Pugh (здесь - его сайт). Кроме того, проблема была добавлена ​​в трекер ошибок Sourceforge (здесь).