Как подавить предупреждения Eclipse 3.5 о мертвом коде

Я используюкласс для определения адресов электронной почты который использует статические финальные логические значения для настройки поведения сопоставления. Поскольку я обновился до Eclipse 3.5, я получаю предупреждения о мертвом коде, так как Eclipse замечает, что одна ветка в этом не может быть достигнута:

private static final boolean ALLOW_DOMAIN_LITERALS = false;
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;

Как ни странно, он счастлив этим:

private static final String domain;
static {
    if(ALLOW_DOMAIN_LITERALS) {
        domain = rfc2822Domain;
    } else {
        domain= rfc1035DomainName;
    }
}

так как, кажется, признает общееif(DEBUG) шаблон, но троичный оператор, кажется, не считается.

Поскольку я не хотел бы слишком много разветвлять класс, чтобы сделать Eclipse счастливым, я бы предпочел поставить@SuppressWarnings вверху вместо изменения кода. К сожалению, я не могу найти подходящего, кроме грубой силы"all", Есть ли значение только для обнаружения мертвого кода?

Ответы на вопрос(3)

Решение Вопроса

UPDATE: из комментария Адама:

В Eclipse 3.6 и более новых версиях Eclipse@SuppressWarnings("unused") теперь может использоваться для подавления «мертвого кода»; предупреждения. УвидетьОтвет Кристофера Стока.

Смотрите такжеEclipse 4.4 (Luna) помощь для @SuppressWarnings.

Original answer:

Все значения SuppressWarnings Eclipse 3.5 "знает" перечислены вэта страница, Кажется, что нет смысла подавлять только обнаружение нового мертвого кода. Но вы можете использовать@SuppressWarnings("all") как раз передdomain объявление, поэтому оно будет подавлять предупреждения только для этой строки, а не для всего класса:

private static final boolean ALLOW_DOMAIN_LITERALS = false;
@SuppressWarnings("all") 
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;

Поскольку проверка мертвого кода является новой, вы также можете предложить улучшение вБаза данных ошибок Eclipse для поддержки троичной операции, а также.

 12 сент. 2013 г., 06:12
@SuppressWarnings("unused") Теперь можно использовать для подавления этого, см.Christopher Stock's answer
 Peter Becker08 июл. 2009 г., 05:46
Вот запись в bugzilla:bugs.eclipse.org/bugs/show_bug.cgi?id=282768  В Bugzilla определенно не хватает как поиска дубликатов, так и синтаксиса вики, который предлагает StackOverflow :-)
 Peter Becker08 июл. 2009 г., 05:51
Я добавил еще один для отсутствующих @SuppressWarnings:bugs.eclipse.org/bugs/show_bug.cgi?id=282770
 17 мая 2010 г., 02:59
Статус обоих запросов теперь проверен как фиксированный
 12 сент. 2010 г., 02:01
Похоже, что вы не можете сделать это для конкретной строки внутри метода. Это должно быть сделано для всего метода, в противном случае & quot; вставьте EnumBody & quot; ошибка отображается.

@SuppressWarnings( "unused" )

Смотрите документацию eclipse для получения дополнительной информации:

http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-suppress_warnings.htm

"unused" to suppress warnings relative to unused code and dead code

Привет

Кристофер

 Peter Becker02 авг. 2013 г., 02:12
Проголосовал, так как это может быть полезно для кого-то, приезжающего сюда. Функция не существовала тогда, но она существует сейчас (см. Проблемы Bugzilla, связанные с моими комментариями к принятому ответу).

Ignore вWindows -> Preferences > Java > Compiler > Errors/Warnings подPotential programming problems раздел

 Peter Becker08 июл. 2009 г., 03:10
Но мне, как правило, нравится эта функция, она просто не срабатывает. Если бы это был мой собственный код, я бы просто изменил его. Вы также можете отключить его на уровне проекта (т. Е. Включить специфичные для проекта настройки компилятора в свойствах проекта), но я даже не хочу этого делать.

Ваш ответ на вопрос