Устаревшие аннотации в 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: Биллу Пью ( здесь находится его веб-сайт). Кроме того, проблема была добавлена ​​в трекер ошибок Sourceforge ( здесь).

Другие вопросы по тегам