Combinaison de plusieurs annotations @SuppressWarnings - Eclipse Indigo

149

Le problème est donc de pouvoir combiner plusieurs suppressions d'avertissement afin que chaque élément n'ait pas besoin de sa propre @SuppressWarningsannotation.

Donc par exemple:

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

Maintenant, au lieu d'en avoir deux, @SuppressWarningsje veux en avoir un au niveau de la classe pour ces deux avertissements, alors comme ceci:

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

Mais ce n'est pas une syntaxe valide, y a-t-il un moyen de le faire?

connuasilya
la source
@SuppressWarnings ("non utilisé", "non coché") ne fonctionne pas, veuillez le modifier en @SuppressWarnings ({"non utilisé", "non coché"})
Raj

Réponses:

304

Utilisez le suivant: @SuppressWarnings({"unused", "unchecked"})

LuGo
la source
Est-ce la convention normale pour toutes les annotations dans Eclipse?
knownasilya
1
Non. Ceci est pour un paramètre de liste. Lorsque vous utilisez un SDK pour exécuter Eclipse (ou lorsque les sources Java sont attachées), vous pouvez simplement appuyer sur F3 sur n'importe quelle annotation pour voir sa déclaration de source, ce qui permet également de voir combien (et quels) paramètres il a besoin.
Bananeweizen
8
Ce serait un tableau, comme dans String[] value(). Les listes n'ont pas de syntaxe particulière en Java, mais les tableaux peuvent être définis à l'aide d'accolades.
Maarten Bodewes
14

Si vous regardez à l'intérieur de l'annotation, vous verrez ceci:

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

comme vous le voyez, le paramètre value est un tableau de chaînes ... donc le paramètre dans l'annotation peut être: value1, value2 ou value3

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

c'est à dire:

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

vous pouvez souvent voir quelque chose comme

@SuppressWarnings("unused") 

et c'est un cas particulier permettant un élément sans " {} "

ΦXocę 웃 Пepeúpa ツ
la source