有没有办法忽略单个 FindBugs 警告?

新手上路,请多包涵

对于 PMD,如果您想忽略特定警告,可以使用 // NOPMD 忽略该行。

FindBugs 有类似的东西吗?

原文由 Ben S 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
2 个回答

FindBugs 初始方法涉及 XML 配置文件,也称为 过滤器。这确实不如 PMD 解决方案方便,但 FindBugs 适用于字节码,而不是源代码,因此注释显然不是一种选择。例子:

 <Match>
   <Class name="com.mycompany.Foo" />
   <Method name="bar" />
   <Bug pattern="DLS_DEAD_STORE_OF_CLASS_LITERAL" />
</Match>

然而,为了解决这个问题,FindBugs 后来引入了另一种基于 注释 的解决方案(参见 SuppressFBWarnings ),您可以在类或方法级别使用(我认为比 XML 更方便)。示例(也许不是最好的,但是,这只是一个示例):

 @edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value="HE_EQUALS_USE_HASHCODE",
    justification="I know what I'm doing")

请注意,由于 FindBugs 3.0.0 SuppressWarnings 已被弃用,取而代之的是 @SuppressFBWarnings 因为与 Java 的名称冲突 SuppressWarnings

原文由 Pascal Thivent 发布,翻译遵循 CC BY-SA 4.0 许可协议

正如其他人提到的,您可以使用 @SuppressFBWarnings 注释。如果您不想或不能向您的代码添加另一个依赖项,您可以自己将注释添加到您的代码中,Findbugs 不关心注释在哪个包中。

 @Retention(RetentionPolicy.CLASS)
public @interface SuppressFBWarnings {
    /**
     * The set of FindBugs warnings that are to be suppressed in
     * annotated element. The value can be a bug category, kind or pattern.
     *
     */
    String[] value() default {};

    /**
     * Optional documentation of the reason why the warning is suppressed
     */
    String justification() default "";
}

资料来源: https ://sourceforge.net/p/findbugs/feature-requests/298/#5e88

原文由 hinneLinks 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题