我在我的FindBugs项目上运行了,并得到了一个潜在的bug警告,我想为了一个特定的原因(在这个问题的上下文之外)来阻止它。下面是代码:
public class LogItem {
private String name;
private void setName(final String nm) {
name = nm;
}
}在这个类上运行FindBugs时,会向您发出关于name = nm赋值操作的警告,说明:Unread field: com.me.myorg.LogItem.name。
所以我试着加上这个:
private void setName(final String nm) {
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "NP", justification = "Because I can")
name = nm;
}当我这样做时,我在Eclipse中得到一个语法(编译)错误,声明:
重复局部变量nm;名称不能解析为类型。
因此,我尝试在字段本身上添加FindBugs‘SuppressWarnings,但是在类上重新运行FindBugs之后,FindBugs仍然在抱怨相同的代码行和相同的原因。我甚至尝试将SuppressWarnings添加到setName方法中,但仍然没有区别。
(准确地说!)我是否使用这个注释来使FindBugs安静?!?
发布于 2012-06-04 21:16:43
将注释放在字段上并修复错误标识符。这对我来说很管用:
public class LogItem {
@edu.umd.cs.findbugs.annotations.SuppressWarnings("URF_UNREAD_FIELD")
private String name;发布于 2012-06-04 16:24:39
我一直使用内置的java.lang.SuppressWarnings,而不是FindBugs,而且到目前为止它还能工作。另外,对于特定的语句,您可能需要在注释之后将语句保持在同一行上。喜欢
@SuppressWarnings("NP") name = nm;另外,您确定"NP"在这里是一个有效的警告标识符吗?如果其他东西似乎没有用的话,我会尝试"unused"。
https://stackoverflow.com/questions/10884606
复制相似问题