组合多个@SuppressWarnings注释 - Eclipse Indigo

因此,问题在于能够组合多个警告抑制,以便每个项目都不需要自己的注释。@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
}

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


答案 1

使用以下命令:@SuppressWarnings({"unused", "unchecked"})


答案 2

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

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

如您所见,参数是字符串数组...因此,注释中的参数可以是:value1、value2 或 value3,其中

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

即:

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

你经常能看到这样的东西

@SuppressWarnings("unused") 

这是一个特殊情况,允许一个元素机智没有”{ }"


推荐