Findbugs Java忽略字段或行

时间:2014-08-22 11:55:47

标签: java annotations findbugs

是否可以为特定字段或行创建Findbugs停用注释,而不是停用所有方法包含字段的整个检查?

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(value="BEAN_SUPER_CALL_ON_OBJECT",
justification = "I don't want to overwrite the method, but otherwise our equals check issues a warning")
@Override
public boolean equals(final Object obj) {

    // this should not be ignored
    super.test(obj);

    // this should be ignored
    return super.equals(obj);

}

这不起作用:

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(value="BEAN_SUPER_CALL_ON_OBJECT")
return super.equals(obj);

这也行不通:

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(value="BEAN_SUPER_CALL_ON_OBJECT")
super.equals(obj);

这样可行,但警告仍会弹出:

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(value="BEAN_SUPER_CALL_ON_OBJECT")
boolean ret_val = super.equals(obj);
return ret_val;

1 个答案:

答案 0 :(得分:2)

字段可能,但不能用于单行代码。根据{{​​3}},@SuppressFBWarnings注释可以应用于

  

[目标] 类型,字段,方法,参数,构造函数,包

(在edu.umd.cs.findbugs.annotations包中,@SuppressFBWarnings@SuppressWarnings是等效的。)

如您所见,LOCAL_VARIABLEANNOTATION_TYPE不在列表中。虽然注释中没有@Target元素,但在这两种情况下,FindBugs会忽略它。