Kombinieren mehrerer @ SuppressWarnings-Anmerkungen - Eclipse Indigo

148

Das Problem besteht also darin, mehrere Warnungsunterdrückungen kombinieren zu können, sodass für jedes Element keine eigene @SuppressWarningsAnmerkung erforderlich ist .

Also zum Beispiel:

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

Anstatt zwei @SuppressWarningszu haben, möchte ich jetzt eine auf Klassenebene für diese beiden Warnungen haben, also so:

@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 ist keine gültige Syntax. Gibt es eine Möglichkeit, dies zu tun?

bekanntasilya
quelle
@ SuppressWarnings ("nicht verwendet", "nicht aktiviert") funktioniert nicht. Bitte ändern Sie es in @ SuppressWarnings ({"nicht verwendet", "nicht aktiviert"})
Raj

Antworten:

303

Verwenden Sie Folgendes: @SuppressWarnings({"unused", "unchecked"})

LuGo
quelle
Ist dies die normale Konvention für alle Anmerkungen in Eclipse?
bekanntasilya
1
Nein. Dies ist für einen Listenparameter. Wenn Sie ein SDK zum Ausführen von Eclipse verwenden (oder wenn die Java-Quellen angehängt sind), können Sie bei jeder Anmerkung einfach F3 drücken, um die Quelldeklaration anzuzeigen und damit auch zu sehen, wie viele (und welche) Parameter benötigt werden.
Bananeweizen
8
Das wäre ein Array wie in String[] value(). Listen haben in Java keine spezielle Syntax, aber Arrays können mit geschweiften Klammern definiert werden.
Maarten Bodewes
14

Wenn Sie einen Blick in die Anmerkung werfen, sehen Sie Folgendes:

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

Wie Sie sehen, ist der Parameter value ein Array von Strings. Der Parameter in der Anmerkung kann also sein: value1, value2 oder value3 where

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

dh:

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

man kann oft so etwas sehen

@SuppressWarnings("unused") 

und dies ist ein besonderer Fall, der ein Element ohne " {} " zulässt.

ΦXocę 웃 Пepeúpa ツ
quelle