查看list of annotations in FindBugs 2.0,我发现很多内容已被弃用。
其中一些(@CheckForNull
,@NonNull
等)已被弃用,因为它们具有等效的JSR-305注释。很高兴终于解决了使用哪种注释的困境。
但是一些特定于FindBugs的注释,例如@DefaultAnnotation
和@DefaultAnnotationForFields
,也已被弃用,我找不到任何解释,说明在它们的位置使用什么。我正在尝试迁移大量使用这些注释的代码库,而且我有点卡住了。
我看到JSR-305有@ParametersAreNonnullByDefault
,我可以用它来替换{{1}}的某些实例,但这并不能涵盖所有情况。
我在这里错过了一些大事吗?我应该使用某种设置文件或其他东西,而不是注释吗?
答案 0 :(得分:9)
(注意:请参阅Should annotations in jar305.jar be preferred over similar annotations in annotation.jar for FindBugs?上的相关文章)
来自作者的PDF(here),第51页:
JSR-305只定义
ParametersAreNonnullByDefault
, 但更多可以在JSR-305之外定义•可由静态分析仪解释 解释JSR-305注释
...所以基本上你可以自己定义它,并给它与你要替换它的名称相同,它应该最终正常工作,因为FindBugs只按名称运行注释(并且可能更喜欢JSR-305)注释,可能是由于特别弃用)。
例如,here是@ParametersAreNonnullByDefault
的来源。
有关更多信息,您可能需要通过电子邮件发送JSR-305和FindBugs的作者:Bill Pugh(here是他的网站)。此外,该问题已添加到Sourceforge错误跟踪器(here)。