2012-10-25 34 views
106

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

因此,例如:

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 
} 

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

+0

@SuppressWarnings( “unused”,“unchecked”)不起作用,请修改为@SuppressWarnings({“unused”,“unchecked”}) – Raj

回答

218

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

+0

这是所有注释的常规约定Eclipse吗? – knownasilya

+1

不可以。这是一个列表参数。当使用SDK运行Eclipse(或附加Java源代码时)时,只需在任何注释中按F3即可查看其源代码声明,从而也可以查看它需要的参数(以及所需的参数)。 – Bananeweizen

+6

这将是一个数组,如在'String [] value()'中。列表在Java中没有特殊的语法,但可以使用大括号来定义数组。 –

8

如果你看看注释里面,你会看到:

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") 

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