【问题标题】:Deprecated annotations in FindBugs 2.0FindBugs 2.0 中已弃用的注释
【发布时间】:2012-03-04 13:44:32
【问题描述】:

查看list of annotations in FindBugs 2.0,我发现其中很多已被弃用。

其中一些(@CheckForNull@NonNull 等)已被弃用,因为它们具有等效的 JSR-305 注释。很高兴最终解决了使用哪组注释的难题。

但是一些 FindBugs 特定的注释,例如 @DefaultAnnotation@DefaultAnnotationForFields,也已被弃用,我找不到任何解释说明在它们的位置使用什么。我正在尝试迁移大量使用这些注释的代码库,但我有点卡住了。

我看到 JSR-305 有 @ParametersAreNonnullByDefault,我可以用它来替换 @DefaultAnnotationForParameters 的一些实例,但这不会涵盖所有情况。

我在这里错过了什么大事吗?我应该使用某种设置文件或其他东西,而不是注释吗?

【问题讨论】:

    标签: java annotations deprecated findbugs


    【解决方案1】:

    (注意:请参阅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)。

    【讨论】:

    • 感谢 PDF 链接!我想知道的一切都在里面。
    猜你喜欢
    • 2018-09-26
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多