2009-07-06 2 views
15

Я использую class for detecting email addresses, который использует статические конечные булевы для настройки соответствия. Так как я повышен до Eclipse 3.5 Я получаю предупреждение о мертвой коде, так как Eclipse, замечает, что одна ветви в этом не может быть достигнута:Как подавить предупреждения Eclipse 3.5 о мертвом коде

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". Есть ли значение только для обнаружения мертвого кода?

ответ

18

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

В Eclipse 3.6 и более новые версии Eclipse, @SuppressWarnings("unused") теперь могут быть использованы для подавления предупреждений «Мертвый код». См. Christopher Stock's answer.

См. Также Eclipse 4.4(Luna) help для @SuppressWarnings.

Оригинальный ответ:

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

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

Потому что мертвый код проверки является новым вы также можете предложить стание в Eclipse bug database для поддержки тройной операции.

+1

Вот запись bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id = 282768 У Bugzilla, безусловно, не хватает как дублированного поиска, так и синтаксиса Wiki. StackOverflow предлагает :-) –

+1

Я добавил один для отсутствующих @SuppressWarnings: https://bugs.eclipse.org/bugs/show_bug.cgi?id= 282770 –

+3

Статус обоих запросов теперь подтвержден. Исправлено. – Casebash

8

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

+1

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

6

Вы можете отключить предупреждения «Мертвого кода» с помощью

@SuppressWarnings("unused") 

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

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

«неиспользуемые», чтобы подавить предупреждения относительно неиспользуемого кода и код ошибки

Поздравления

Christopher

+2

Проголосовал за то, что он может быть полезен для кого-то Вот. Функция тогда не существовала, но теперь она (см. Проблемы Bugzilla, связанные в моих комментариях относительно принятого ответа). –

 Смежные вопросы

  • Нет связанных вопросов^_^