FindBugs在我的代码中发现了一个潜在的错误。但这不是错误。
是否可以将这种情况标记为“不是错误”并将其从错误列表中删除?
我已经很清楚地记录了为什么每种情况下它都不是错误。
例如。一个类实现可比较的接口。它具有compareTo方法。但是,我没有重写equals方法。
FindBugs不喜欢这样,因为JavaDocs指出建议
(x.compareTo(y)==0) == (x.equals(y))
尽管就我而言,上述条件始终都是正确的。
除了使用过滤器,您还可以使用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崩溃。