SuppressWarnings "все" жалобы от Eclipse - PullRequest
2 голосов
/ 14 января 2012

Что не так с аннотацией SuppressWarnings над оператором if?Eclipse с Sun JDK 6 предоставляет два описания синтаксических ошибок, бесполезных и трудных для понимания, показанных в комментариях.

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

1 Ответ

5 голосов
/ 14 января 2012

Только классы, методы, объявления переменных, параметры и пакеты могут быть аннотированы.Поэтому нельзя использовать SuppressWarnings («all») в операторе if.

Чтобы устранить эту проблему, вы можете просто сделать следующее.

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

Нет SuppressWarnings («Dead»)код ") на данный момент.

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

...