160

所以问题是能够结合多重警告抑制,这样每个项目就不需要它自己的@SuppressWarnings注释。

例如:

public class Example
    public Example() {
        GO go = new GO();  // unused
        ....
        List<String> list = ( List<String> ) go.getList(); // unchecked
    }
    ...
    // getters/setters/other methods
}

现在我不想有两个,@SuppressWarnings我想在班级级别有一个来处理这两个警告,就像这样:

@SuppressWarnings( "unused", "unchecked" )
public class Example
    public Example() {
        GO go = new GO();  // unused - suppressed
        ....
        List<String> list = ( List<String> ) go.getList(); // unchecked - suppressed
    }
    ...
    // getters/setters/other methods
}

但这不是一个有效的语法,有没有办法做到这一点?

4

2 回答 2

326

使用以下内容: @SuppressWarnings({"unused", "unchecked"})

于 2012-10-25T14:02:03.477 回答
19

如果您查看注释内部,您将看到:

public @interface SuppressWarnings {
    String[] value();
}

如您所见,value参数是一个字符串数组...所以注解中的参数可以是: value1、value2 或 value3 其中

final String[] value1 = { "a1" };
final String[] value2 = { "a1", "a2" };
final String[] value3 = { "a1", "a2", "a3" };

IE:

@SuppressWarnings({"unused"})
@SuppressWarnings({"unused", "javadoc"})

你经常看不到类似的东西

@SuppressWarnings("unused") 

这是一种特殊情况,允许一个元素没有“ {}

于 2016-07-07T10:22:29.957 回答