我在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;

09-05 00:44
查看更多