Как подавить предупреждения компилятора Java для определенных функций

StackOverflow https://stackoverflow.com/questions/593996

Вопрос

Нас всегда учат быть уверенными, что мы используем перерыв в операторах switch, чтобы избежать сбоев.

Компилятор Java предупреждает об этих ситуациях, чтобы помочь нам не допускать тривиальных (но серьезных) ошибок.

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

Однако компилятор выдает огромное количество предупреждений, которые могут скрывать предупреждения, о которых мне нужно знать.Я знаю, как я могу изменить компилятор, чтобы игнорировать ВСЕ предупреждения о сбоях, но я хотел бы реализовать это на основе каждого метода, чтобы не пропустить место, где я не предполагал, что произойдет сбой.

Есть какие-нибудь идеи?

Это было полезно?

Решение

Если вам действительно, действительно необходимо это сделать, и вы уверены, что не совершаете ошибки, ознакомьтесь с аннотация @SuppressWarnings.Я полагаю, в вашем случае вам нужно

@SuppressWarnings("fallthrough")

Другие советы

Является аннотацией @SuppressWarnings (Javadoc) что вы ищете?

Например:

@SuppressWarnings("unchecked")
public void someMethod(...) {
    ...
}

Чтобы завершить другой ответ о SuppressWarnings:

@SuppressWarnings("fallthrough")

Пытаться подавить все аварийные предупреждения на уровне компилятора - это плохо:как вы объяснили, случаи, когда вам необходимо пройти через предупреждение, четко определены.Таким образом, это должно быть явно записано в коде (the @SuppressWarnings("fallthrough") аннотация с дополнительным комментарием приветствуется).Поступая таким образом, вы по-прежнему будете иметь аварийное предупреждение, если вы действительно забудете о разрыве где-нибудь еще в своем коде.

Вы могли бы создать структуру операторов 'if' вместо switch .Может быть, это не так визуально приятно, однако подавление предупреждений также не является таковым.

@SuppressWarnings("fallthrough")

Java всегда следовала инструкциям switch в стиле C, где вам нужно явно выйти из switch, если вы не хотите просто провалиться и выполнить код в приведенном ниже примере.Конечно, это может быть опасно, и ошибки такого рода бывает очень трудно отследить.В следующем примере в случае 1 отсутствует разрыв:

@SuppressWarnings("fallthrough")
public void fallthroughTest(int i)
{
    switch (i)
    {
        case 1:
            // Execute both 1 and 2
        case 2:
            // Execute only 1
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top