Странный результат от "@SuppressWarnings"

Eclipse предупреждает меня, что локальная переменная randInt может быть не инициализирована (это было). Поэтому я добавил первую строку:

@SuppressWarnings("all")
return randInt;

Предупреждение исчезло, но я получаю две новые ошибки в первой строке: синтаксическая ошибка: вставьте "enum Identifier" для завершения EnumHeaderName и синтаксическую ошибку: вставьте "EnumBody" для завершения BlockStatement

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

Минимальный, полный, проверяемый пример:

public class SuppressTest {
    public int cut() { 
        int randInt = 0; 
        @SuppressWarnings("all") 
        return randInt;
    }
}

1 ответ

Решение

Вы не можете вставить @SuppresWarnings в ответном заявлении. В Java 8 вы можете аннотировать только классы, методы / конструкторы, поля, параметры и (новые в Java 8) локальные переменные.

Так что в вашем случае Java не может разобрать то, что вы написали. Переместить @SuppressWarnings на уровне метода.

Другие вопросы по тегам