Устаревшие аннотации в 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 ( здесь).