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?


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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.