Combinando várias anotações do @SuppressWarnings - Eclipse Indigo

149

Portanto, o problema é poder combinar várias supressões de aviso para que cada item não precise de sua própria @SuppressWarningsanotação.

Então, por exemplo:

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

Agora, em vez de ter dois @SuppressWarnings, quero ter um no nível da classe para esses dois avisos, assim:

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

Mas essa não é uma sintaxe válida, existe uma maneira de fazer isso?

knownasilya
fonte
@SuppressWarnings ( "não utilizado", "desmarcada") não funciona por favor, modificá-lo para @SuppressWarnings ({ "não utilizadas", "não verificadas"})
Raj

Respostas:

304

Use o seguinte: @SuppressWarnings({"unused", "unchecked"})

LuGo
fonte
Essa é a convenção normal para todas as anotações no Eclipse?
knownasilya
1
Não. Isso é para um parâmetro de lista. Ao usar um SDK para executar o Eclipse (ou ao ter as fontes Java anexadas), você pode simplesmente pressionar F3 em qualquer anotação para ver sua declaração de origem, e também ver quantos (e quais) parâmetros são necessários.
Bananeweizen
8
Isso seria uma matriz, como em String[] value(). As listas não têm sintaxe especial em Java, mas as matrizes podem ser definidas usando chaves.
Maarten Bodewes
14

Se você der uma olhada na anotação, verá o seguinte:

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

como você vê, o parâmetro value é uma matriz de Strings ... então o parâmetro na anotação pode ser: value1, value2 ou value3 em que

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

ou seja:

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

muitas vezes você pode ver algo como

@SuppressWarnings("unused") 

e este é um caso particular que permite um elemento sem " {} "

OcXocę 웃 pepeúpa ツ
fonte