2012-10-25 60 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") 

,這是一個特殊情況,允許一個元素機智沒有 「{}