2012-10-25 14 views
106

Problem polega na tym, że można połączyć wielokrotne tłumienie ostrzeżeń, aby każdy element nie wymagał własnej adnotacji @SuppressWarnings.Łączenie wielu adnotacji @SuppressWarnings - Eclipse Indigo

Tak 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ć jedną 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ć?

+0

@SuppressWarnings ("nieużywane", "niezaznaczone") nie działa, zmodyfikuj go na @SuppressWarnings ({"nieużywane", "niezaznaczone"}) – Raj

Odpowiedz

218

użyć następujących: @SuppressWarnings({"unused", "unchecked"})

+0

Czy jest to normalna konwencja dla wszystkich adnotacji? n Eclipse? – knownasilya

+1

Nie. Jest to parametr listy. Podczas korzystania z zestawu SDK do uruchamiania Eclipse (lub z dołączonymi źródłami Java) można po prostu nacisnąć klawisz F3 na dowolnej adnotacji, aby zobaczyć deklarację źródłową, a tym samym zobaczyć, ile (i jakich) parametrów potrzebuje. – Bananeweizen

+6

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 klamrowych. –

8

Jeśli spojrzeć wewnątrz adnotacji widać to:

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

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

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

tj:

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

można często zobaczyć coś

@SuppressWarnings("unused") 

i jest to szczególny przypadek jednego elementu pozwala dowcip ma "{}"