2012-10-25 14 views
106

Das Problem besteht also darin, mehrere Warnungsunterdrückungen zu kombinieren, so dass jedes Element keine eigene @SuppressWarnings Annotation benötigt.Kombinieren mehrerer @SuppressWarnings-Annotationen - Eclipse Indigo

So zum Beispiel:

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

nun statt mit zwei @SuppressWarnings ich für diese beiden Warnungen ein auf Klassenebene haben wollen, so wie folgt aus:

@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 
} 

Aber das nicht der Fall ist eine gültige Syntax, gibt es eine Möglichkeit, dies zu tun?

+0

@SuppressWarnings sehen ("unused", "unchecked") funktioniert nicht Bitte ändern Sie es in @SuppressWarnings ({"unused", "unchecked"}) – Raj

Antwort

218

Verwenden Sie die folgenden Schritte aus: @SuppressWarnings({"unused", "unchecked"})

+0

Ist dies die normale Konvention für alle Anmerkungen i n Eclipse? – knownasilya

+1

Nein. Dies ist für einen Listenparameter. Wenn Sie ein SDK zum Ausführen von Eclipse verwenden (oder wenn Sie die Java-Quellen angehängt haben), können Sie einfach F3 auf eine beliebige Annotation drücken, um deren Quellendeklaration zu sehen und dabei zu sehen, wie viele (und welche) Parameter benötigt werden. – Bananeweizen

+6

Das wäre ein Array, wie in 'String [] value()'. Listen haben keine spezielle Syntax in Java, aber Arrays können mithilfe von geschweiften Klammern definiert werden. –

8

Wenn Sie einen Blick in die Anmerkung nehmen Sie das sehen:

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

wie Sie sehen, der Wert Parameter ist ein Array von Strings .. . so kann der Parameter in der Anmerkung sein: Wert1, Wert2 oder value3 wo

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

dh:

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

Sie oft so etwas wie

@SuppressWarnings("unused") 

und dies ist ein besonderer Fall erlaubt ein Element wit keine "{}"

Verwandte Themen