Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

@SuppressWarnings

Отключает выбранные предупреждения компилятора для класса, метода или переменной.

Доступно с: Java 5

Синтаксис

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, MODULE}) @Retention(SOURCE) public @interface SuppressWarnings

Параметры

ПараметрТипОписание
valueString[]Названия предупреждений: unchecked, deprecation, removal, rawtypes и другие.

Примеры

Непроверяемое приведение к List<String> даёт предупреждение:

List<String> names(Object data) {
    return (List<String>) data;
}
 
void main() {
    IO.println(names(List.of("Anna", "Oleg")));
}

Результат:

Main.java:2: warning: [unchecked] unchecked cast
    return (List<String>) data;
                          ^
  required: List<String>
  found:    Object
1 warning
[Anna, Oleg]

С аннотацией на методе предупреждения нет:

@SuppressWarnings("unchecked")
List<String> names(Object data) {
    return (List<String>) data;
}
 
void main() {
    IO.println(names(List.of("Anna", "Oleg")));
}

Результат:

[Anna, Oleg]

Примечания

Ставьте аннотацию как можно ближе к проблемному месту — на переменную или метод, а не на весь класс, — и только когда уверены, что код безопасен. Несколько значений передают массивом: @SuppressWarnings({"unchecked", "rawtypes"}). Набор поддерживаемых имён зависит от компилятора и IDE; javac понимает те же, что и ключ -Xlint.

См. также

  • @Deprecated — Помечает устаревший класс, метод или поле. Компилятор предупреждает, когда их используют.
  • @Override — Помечает метод, который переопределяет метод родителя или интерфейса. Компилятор проверяет, что это действительно так.
  • var — Объявляет локальную переменную, тип которой компилятор выводит из значения.

В учебнике

  • Аннотации — Аннотации в Java — @Override, @Deprecated, @FunctionalInterface, @SuppressWarnings, объявление своей аннотации, @Retention, @Target и чтение аннотаций во время работы программы.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.