Frage

What is wrong with the SuppressWarnings annotation above the if statement? Eclipse with Sun JDK 6 provides two syntax error descriptions, both unhelpful and hard to understand, shown in comments.

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;
}
War es hilfreich?

Lösung

Only classes, methods, variable declarations, parameters and packages may be annotated. Therefore, you cannot use SuppressWarnings("all") on an if statement.

To fix this issue, you can simply do the following.

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

There is no SuppressWarnings("Dead code") as of yet.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top