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

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

Стиль кода

Опция

Описание

По умолчанию

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении выражения 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".

Выключена

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

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

Ошибка

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

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

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

Ненужный код

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

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

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

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

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

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

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

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

Выключена

Игнорировать параметры с тегом '@param'

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

Вкл.

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

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

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

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

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

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

Избыточная проверка нулевых значений

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

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

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

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

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

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

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

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

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

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

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

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

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

Выключена

Ненужная метка 'break' или 'continue'

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

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

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

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

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

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

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

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

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

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

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

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

Аннотации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вкл.

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

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

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