Łączenie wielu adnotacji @SuppressWarnings - Eclipse Indigo

149

Tak więc problem polega na tym, że można łączyć wielokrotne pomijanie ostrzeżeń, tak aby każdy element nie potrzebował własnej @SuppressWarningsadnotacji.

Na przykład:

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

Teraz zamiast dwóch @SuppressWarnings, chcę mieć jedno na poziomie klasy dla tych dwóch ostrzeżeń, więc tak:

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

Ale to nie jest poprawna składnia, czy istnieje sposób, aby to zrobić?

znanyasilya
źródło
@SuppressWarnings ("unused", "unchecked") nie działa, zmień go na @SuppressWarnings ({"unused", "unchecked"})
Raj

Odpowiedzi:

304

Użyj następujących: @SuppressWarnings({"unused", "unchecked"})

LuGo
źródło
Czy jest to normalna konwencja dla wszystkich adnotacji w Eclipse?
knownasilya
1
Nie. To jest dla parametru listy. Używając SDK do uruchomienia Eclipse (lub mając dołączone źródła Java), możesz po prostu nacisnąć klawisz F3 w dowolnej adnotacji, aby zobaczyć jej deklarację źródła, a tym samym zobaczyć również, ile (i jakich) parametrów potrzebuje.
Bananeweizen
8
To byłaby tablica, jak w String[] value(). Listy nie mają specjalnej składni w Javie, ale tablice można definiować za pomocą nawiasów.
Maarten Bodewes
14

Jeśli zajrzysz do adnotacji, zobaczysz to:

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

jak widzisz, parametr wartość jest tablicą ciągów ... więc parametr w adnotacji może mieć postać : wartość1, wartość2 lub wartość3, gdzie

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

to znaczy:

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

często można zobaczyć coś takiego

@SuppressWarnings("unused") 

i jest to szczególny przypadek, w którym jeden element nie zawiera „ {}

ΦXocę 웃 Пepeúpa ツ
źródło