2012-01-14 2 views
1

Quel est le problème avec l'annotation SuppressWarnings au-dessus de la déclaration if? Eclipse avec Sun JDK 6 fournit deux descriptions d'erreurs de syntaxe, inutiles et difficiles à comprendre, présentées dans les commentaires.SuppressWarnings "all" plainte d'Eclipse

class TestDeadCode 
{ 
    //@SuppressWarnings("all") 
    public static void main(String[] args) 
    { 
     @SuppressWarnings("all") // syntax errors: insert enum body, insert enum id 
     if ((Constants.flag0) && (Constants.flag1)) 
      System.out.println("hello\n");  
    } 
} 

interface Constants 
{ 
    boolean flag0 = false; 
    boolean flag1 = false; 
} 

Répondre

3

Seules les classes, méthodes, déclarations de variables, paramètres et packages peuvent être annotés. Par conséquent, vous ne pouvez pas utiliser SuppressWarnings ("all") sur une instruction if.

Pour résoudre ce problème, vous pouvez simplement procéder comme suit.

@SuppressWarnings("all") 
boolean flag = Constants.flag0 && Constants.flag1; 
if (flag) { 
    System.out.println("hello\n"); 
} 

Il n'y a pas de SuppressWarnings ("code mort") pour le moment.

http://docs.oracle.com/javase/7/docs/api/java/lang/SuppressWarnings.html http://pmd.sourceforge.net/suppressing.html

+0

bah, me battre au poteau! –

+0

En outre, vous pouvez indiquer à eclipse d'ignorer l'avertissement de code mort. Windows> Préférences> Java> Compilateur> Erreurs/Avertissements Dans la section "Problèmes de programmation potentiels" vers le bas est "Dead Code" – JustinDanielson

+0

merci, bonne réponse –

Questions connexes