SuppressWarnings不适用于FindBugs

我在我的Eclipse项目上运行了FindBugs并得到了一个潜在的错误警告我想要因特定原因而压制(在这个问题的上下文之外)。 这是代码:

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?!?

将注释放在字段上并修复错误标识符。 这对我有用:

 public class LogItem { @edu.umd.cs.findbugs.annotations.SuppressWarnings("URF_UNREAD_FIELD") private String name; 

我一直使用内置的java.lang.SuppressWarnings ,而不是FindBugs,它到目前为止都有用。 此外,对于特定语句,您可能需要在注释后立即将语句保留在同一行。 喜欢

  @SuppressWarnings("NP") name = nm; 

另外,您确定"NP"是一个有效的警告标识符吗? 如果没有其他似乎工作,我会尝试"unused"