Устаревшие аннотации в FindBugs 2.0 - PullRequest
8 голосов
/ 13 февраля 2012

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

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

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

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

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

1 Ответ

9 голосов
/ 13 февраля 2012

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

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

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

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

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

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

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

...