将Eclipse与FindBugs一起使用时,您是否可以将错误标记为错误并将其从错误列表中删除?

Ron*_*fin 18 java eclipse findbugs

FindBugs在我的代码中发现了一个潜在的错误.但这不是一个错误.

是否可以将此事件标记为"不是错误"并将其从错误列表中删除?

我已经非常清楚地记录了为什么每个案例都不是一个bug.

例如.类实现了类似的接口.它有compareTo方法.但是我没有覆盖equals方法.

FindBugs不喜欢这个,因为JavaDocs声明它是推荐的

(x.compareTo(y)==0) == (x.equals(y))
Run Code Online (Sandbox Code Playgroud)

虽然在我的情况下,上述条件是并且始终是真的.

WMR*_*WMR 34

您也可以使用SuppressWarnings注释,而不是使用过滤器.您必须使用findbugs包中的注释,这意味着您需要导入或使用它的完全限定名称.这是因为除了来自JDK 的SuppressWarning之外,它还保留了"Class",这是必需的,因为findbugs对编译的字节码而不是源代码进行操作.

例:

@edu.umd.cs.findbugs.annotations.SuppressWarnings(
    value="EQ_COMPARETO_USE_OBJECT_EQUALS", 
    justification="because I know better")
Run Code Online (Sandbox Code Playgroud)

有一个角落你可能不应该使用注释:如果你的代码是最终在jar中的库代码,那么它可以被其他项目使用,你仍然使用Java5.原因是JDK中的一个错误,如果注释不在类路径中,它会崩溃javac.


Von*_*onC 6

可能通过添加过滤器作为findbugs的参数

匹配子句只能匹配错误实例中实际包含的信息

<Match>
   <Class name="com.foobar.MyClass" />
   <Method name="myMethod" />
   <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS" />
</Match>
Run Code Online (Sandbox Code Playgroud)