web-dev-qa-db-fra.com

Combinaison de plusieurs annotations @SuppressWarnings - Eclipse Indigo

Le problème est donc de pouvoir combiner plusieurs suppressions d’avertissements de sorte que chaque élément n’a pas besoin de lui-même @SuppressWarnings annotation.

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'avoir deux @SuppressWarnings Je veux en avoir un au niveau de la classe pour ces deux avertissements, donc 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 at-il un moyen de le faire?

134
knownasilya

Utilisez les éléments suivants: @SuppressWarnings({"unused", "unchecked"})

279
LuGo

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

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

comme vous le voyez, le paramètre valeur est un tableau de chaînes ... de sorte que le paramètre de l'annotation peut être: valeur1, valeur2 ou valeur

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 qui permet à un élément de ne pas "{}"