一尘不染

当将Eclipse与FindBugs结合使用时,是否可以将错误标记为不是错误,并将其从错误列表中删除?

java

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

是否可以将这种情况标记为“不是错误”并将其从错误列表中删除?

我已经很清楚地记录了为什么每种情况下它都不是错误。

例如。一个类实现可比较的接口。它具有compareTo方法。但是,我没有重写equals方法。

FindBugs不喜欢这样,因为JavaDocs指出建议

(x.compareTo(y)==0) == (x.equals(y))

尽管就我而言,上述条件始终都是正确的。


阅读 222

收藏
2020-12-03

共1个答案

一尘不染

除了使用过滤器,您还可以使用SuppressWarnings批注。您必须使用findbugs包之外的注释,这意味着您需要导入或使用其完全限定名称。这是因为除了JDK
SuppressWarnings之外,它还具有保留“类”,这是必需的,因为findbugs对编译的字节码而不是源代码进行操作。

例:

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

在一个极端的情况下,您可能不应该使用注释:如果您的代码是以jar结尾的库代码,则其他项目可以使用该代码,
您仍在使用Java5。原因是JDK中的错误,如果注释不在类路径中,则会导致javac崩溃。

2020-12-03