Ошибки/предупреждения

Укажите параметры для ошибок/предупреждений на странице параметров Открывает страницу параметров Ошибки/предупреждения Java > Компилятор > Ошибки/Предупреждения.

Стиль кода

Опция

Описание

По умолчанию

Нестатический доступ к статическому элементу

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

Предупреждение

Косвенный доступ к статическому элементу

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

Игнорировать

Доступ по неполному пути к полю экземпляра:

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

Игнорировать

Недокументированный пустой блок

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

Игнорировать

Обращение к недоступному элементу вмещающего типа

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

Игнорировать

Метод с именем конструктора

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

Предупреждение

Присваивание параметра

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

Игнорировать

Не экспортированные строки

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении неэкспортированных литеральных строк (т.е. не содержащих тега //$NON-NLS-<n>$) или тегов не экспортированных строк, не относящихся к строке.

Игнорировать

Потенциальные неполадки в коде

Сериализуемый класс без serialVersionUID

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении типа, реализующего 'java.io.Serializable', но не имеющего поля serialVersionUID.

Предупреждение

Безрезультатное присваивание (например, 'x = x')

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении безрезультатного присваивания (например, 'x = x').

Предупреждение

Возможное случайное булевское присваивание ( 'if (a = b)')

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении случайного булевского присваивания (например, 'if (a = b)').

Игнорировать

Ненормальное завершение блока finally

Если эта опция включена, то компилятор будет выдавать сообщение об ошибке или предупреждение при ненормальном завершении блока с ключевым словом 'finally'.

Предупреждение

Пустой оператор

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

Игнорировать

Применение символьного массива в конкатенации строк

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении выражения char[] в конкатенациях строк, например:

"hello" + new char[]{'w','o','r','l','d'}

Предупреждение

Скрытые блоки catch

Локально по отношению к оператору try некоторые блоки catch могут скрывать другие, например:

try { throw new java.io.CharConversionException();
} catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}.

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении скрытых блоков catch, соответствующих отмеченным исключительным ситуациям.

Предупреждение

Неточное совпадение типов для аргументов vararg

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении неточного совпадения типов для аргументов vararg.

Предупреждение

Приведение типов

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

Игнорировать

Константы типа перечисление на обрабатываются в 'switch'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если не все константы перечисления обрабатываются в операторе 'switch'.

Игнорировать

Пропуск прецедента 'switch'

Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение при обнаружении прецедента switch без оператора 'break'. Допускается применение пустых прецедентов switch.

Игнорировать

Пустая ссылка

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

Игнорировать

Конфликты и наложение имен

Объявление поля, скрывающее другое поле или переменную:

Если эта опция включена, то компилятор выдаст ошибку или предупреждение, если объявление поля скрывает другое унаследованное поле.

Игнорировать

Объявление локальной переменной, скрывающее другое поле или переменную:

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

Игнорировать

Добавить параметры конструктора или метода set

Если эта опция включена, то компилятор также выдаст ошибку или предупреждение, если параметр конструктора или метода set скрывает другое поле или переменную.

Выключена

Тип параметра скрывает другой тип

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

Предупреждение

Переопределенные методы, не видимые в пакете

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

Предупреждение

Конфликт метода интерфейса с защищенным методом 'Object'

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

interface I {
   int clone();
}

Предупреждение

Устаревший и запрещенный API

Устаревший API

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

Предупреждение

Извещать об использовании устаревших API в устаревшем коде

Если эта опция включена, то компилятор сообщит об обнаружении устаревших API в устаревшем коде. Серьезность неполадки определяется опцией "Устаревшие API".

Выключена

Извещать о переопределении или реализации устаревшего метода

Если эта опция включена, то компилятор сообщит об обнаружении переопределения или реализации устаревшего метода. Серьезность неполадки определяется опцией "Устаревшие API".

Выключена

Запрещенная ссылка (правила доступа)

При включении этой опции компилятор будет сообщать о запрещенной ссылке в правилах доступа.

Ошибка

Нежелательная ссылка (правила доступа)

При включении этой опции компилятор будет сообщать о нежелательной ссылке в правилах доступа.

Предупреждение

Ненужный код

Локальная переменная никогда не читается

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

Предупреждение

Параметр ни разу не считывается

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

Игнорировать

Проверять переопределяющие и реализующие методы

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

Выключена

Неиспользуемое объявление импорта

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

Предупреждение

Неиспользованные локальные или закрытые элементы

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

Предупреждение

Ненужный оператор else

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего оператора else (например, if (condition) return; else doSomething();).

Игнорировать

Ненужная операция преобразования типов или 'instanceof':

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего приведения типов или оператора instanceof (например, if (object instanceof Object) return;).

Игнорировать

Ненужное объявление генерируемой исключительной ситуации

При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего объявления исключительной ситуации.

Игнорировать

Проверять переопределяющие и реализующие методы

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

Выключена

Неиспользуемая метка прервать/продолжить

Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение при обнаружении неиспользуемой метки 'break' или 'continue'.

Предупреждение

Параметризуемые типы

Операция с непроверенным параметризуемым типом

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

Предупреждение

Использование примитивного типа

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

Игнорировать

Параметр шаблонного типа, объявленный в связывании типа final

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

Предупреждение

Аннотации

Отсутствует аннотация '@Override'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если в объявлении метода, переопределяющего другой метод, нет аннотации @Override.

Игнорировать

Отсутствует аннотация '@Deprecated'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если в объявлении устаревшего типа нет аннотации '@Deprecated'.

Игнорировать

Аннотация используется как базовый интерфейс

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

Предупреждение

Необрабатываемые маркеры предупреждений в '@SuppressWarnings'

При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если он встречает необрабатываемые маркеры предупреждений в аннотации '@SuppressWarnings'.

Предупреждение

Включить аннотации '@SuppressWarnings'

При включении этой опции компилятор обрабатывать аннотации '@SuppressWarnings'.

Вкл.

Связанные концепции

Панель Неполадки
Быстрое исправление
Компоновщик Java