Combinazione di più annotazioni @SuppressWarnings - Eclipse Indigo


149

Quindi il problema è riuscire a combinare soppressioni di avvisi multipli in modo che ogni elemento non abbia bisogno della propria @SuppressWarningsannotazione.

Quindi per esempio:

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

Ora invece di averne due @SuppressWarningsvoglio averne uno a livello di classe per quei due avvertimenti, quindi in questo modo:

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

Ma questa non è una sintassi valida, c'è un modo per farlo?


@SuppressWarnings ("unused", "unchecked") non funziona per favore modificalo in @SuppressWarnings ({"unused", "unchecked"})
Raj

Risposte:


304

Utilizza il seguente: @SuppressWarnings({"unused", "unchecked"})


È questa la normale convenzione per tutte le annotazioni in Eclipse?
knownasilya,

1
No. Questo è per un parametro di elenco. Quando si utilizza un SDK per eseguire Eclipse (o quando sono collegati i sorgenti Java), è possibile semplicemente premere F3 su qualsiasi annotazione per vedere la relativa dichiarazione di origine, quindi vedere anche quanti (e quali) parametri sono necessari.
Bananeweizen,

8
Sarebbe un array, come in String[] value(). Le liste non hanno una sintassi speciale in Java, ma le matrici possono essere definite usando le parentesi graffe.
Maarten Bodewes,

14

Se dai un'occhiata all'interno dell'annotazione vedrai questo:

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

come vedi, il parametro value è un array di stringhe ... quindi il parametro nell'annotazione può essere: value1, value2 o value3 dove

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

vale a dire:

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

spesso non vedi qualcosa del genere

@SuppressWarnings("unused") 

e questo è un caso particolare che consente un elemento senza " {} "

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.