Укажите параметры для ошибок/предупреждений на странице параметров
Java > Компилятор > Ошибки/Предупреждения.
|
Параметр |
Описание |
По умолчанию |
|---|---|---|
|
Нестатический доступ к статическому элементу |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение, когда обнаружит, что к статическому полю или методу обращается приемник выражений. Ссылка на статический элемент должна быть уточнена именем типа. |
Предупреждение |
|
Косвенный доступ к статическому элементу |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при косвенном обращении к статическому полю или методу. Статическое поле интерфейса должно быть указано с полным именем, включая имя объявляющего типа. |
Игнорировать |
|
Доступ по неполному пути к полю экземпляра: |
Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение при обнаружении доступа к полю по неполному имени (без 'this'). |
Игнорировать |
|
Обращение к недоступному элементу вмещающего типа |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при эмуляции обращения к недоступному элементу вмещающего типа. Такие обращения могут вызвать снижение производительности. |
Игнорировать |
|
Присваивание параметра |
Присваивание значения параметру обычно считается плохим стилем программирования. Если эта опция включена, то компилятор будет сообщать об этом как об ошибке или о предупреждении. |
Игнорировать |
|
Не экспортированные строки |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении неэкспортированных литеральных строк (т.е. не содержащих тега //$NON-NLS-<n>$) или тегов не экспортированных строк, не относящихся к строке. |
Игнорировать |
|
Недокументированный пустой блок |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении пустого блока операторов без комментариев. |
Игнорировать |
|
Для управления ресурсом не используется try-with-resource (версия 1.7 или выше) |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение, если в локальной переменной содержится значение типа 'java.lang.AutoCloseable' и если метод 'close()' вызван явным образом для данного ресурса, но ресурс не управляется блоком try-with-resources. |
Игнорировать |
|
Метод с именем конструктора |
Совпадение имени метода с именем конструктора обычно считается плохим стилем программирования. Если эта опция включена, то компилятор будет сообщать об этом как об ошибке или о предупреждении. |
Предупреждение |
|
Метод может быть статическим |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении методов, помеченных как private или final, но ссылающихся только на статические члены. |
Игнорировать |
|
Метод потенциально может быть статическим |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении методов, не помеченных как private или final, но ссылающихся только на статические члены. Обратите внимание, что методы могут быть переопределены в производных классах, поэтому если сделать "потенциально статический" метод статическим, то в существующих клиентах могут возникать ошибки. |
Игнорировать |
|
Сравнение одинаковых операндов ('x == x') |
Если эта опция включена, то компилятор будет выдавать сообщение об ошибке или предупреждение, если в сравнении участвуют идентичные операнды (например, 'x == x'). |
Предупреждение |
|
Безрезультатное присваивание (например, 'x = x') |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при безрезультатном присваивании (например, 'x = x'). |
Предупреждение |
|
Возможная ошибка булевского присваивания (например, 'if (a = b)') |
Если эта опция включена, то компилятор выдаст сообщение об ошибке или предупреждение о возможной ошибке булевского присваивания (например, 'if (a = b)'). |
Игнорировать |
|
Приведение типов |
Если эта опция включена, то компилятор будет выдавать ошибку или предупреждение при каждом выполнении преобразования приведения типов. Автоматическое приведение типов снижает быстродействие. |
Игнорировать |
|
Применение символьного массива в конкатенации строк |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении выражения char[] в конкатенациях строк, например: "hello" + new char[]{'w','o','r','l','d'} |
Предупреждение |
|
Неточное совпадение типов для аргументов vararg |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении неточного совпадения типов для аргументов vararg. |
Предупреждение |
|
Пустой оператор |
Если эта опция включена, то компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении пустого оператора (ненужной точки с запятой). |
Игнорировать |
|
Неиспользуемое выделение объекта |
Если эта опция включена, то компилятор выдаст сообщение об ошибке или предупреждение при обнаружении выделенного объекта, который не используется, например if (name == null) new IllegalArgumentException(); |
Игнорировать |
|
Неполный набор ветвей 'switch' для перечисления |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при каждом обнаружении оператора 'switch', в котором не содержатся ни операторы case для каждой константы перечисления соответствующего перечисления, ни вариант 'default'. Это предупреждение является рекомендованным согласно Спецификации языка Java 14.11. Оно помогает обеспечить, чтобы операторы 'switch' охватывали все возможные значения перечисления. |
Предупреждение |
|
Сообщать даже при наличии варианта 'default' |
Если эта опция включена, компилятор дополнительно выдает сообщение об ошибке или предупреждение, если константа перечисления не включена в вариант, даже при наличии варианта 'default'. Эта опция нужна для обнаружения пропущенных операторов case при добавлении новой константы перечисления. |
Выключена |
|
В 'switch' отсутствует вариант 'default' |
Если эта опция включена, компилятор будет выдавать сообщение об ошибке или предупреждение, если в операторе 'switch' отсутствует вариант 'default'. Следовательно, отсутствующая ветвь 'default' будет помечена, даже если все возможные значения иным образом включены в операторы 'case'. Эта опция помогает обеспечить явную обработку новый значений выражения 'switch', вместо их пропуска. Она также помогает объяснить ошибки компиляции для неиспользованных переменных после оператора 'switch': набор допустимых значений может увеличиться в будущем, поэтому переменная также должна быть инициализирована в варианте 'default'. |
Игнорировать |
|
Проход сквозь вариант 'case' в 'switch' |
Если эта опция включена, компилятор будет выдавать сообщение об ошибке или предупреждение при проходе в 'case' из предыдущего не пустого 'case'. |
Игнорировать |
|
Скрытый блок catch |
Локально по отношению к оператору try некоторые блоки catch могут скрывать другие, например: try { throw new java.io.CharConversionException();} catch (java.io.CharConversionException e) {} catch (java.io.IOException e) {}Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении скрытых блоков catch, соответствующих отмеченным исключительным ситуациям. |
Предупреждение |
|
Ненормальное завершение блока finally |
Если эта опция включена, то компилятор выдаст сообщение об ошибке или предупреждение о ненормальном завершении блока 'finally' (например, содержит оператор return). |
Предупреждение |
|
Невыполнимый код (например, 'if (false)') |
Если эта опция включена, то компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении невыполнимого кода (например, 'if (false)' ). |
Предупреждение |
|
Утечка ресурса |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение, если локальная переменная имеет тип 'java.lang.AutoCloseable' (совместимость >= 1.7) или 'java.io.Closeable' (совместимость <= 1.6), и если в потоке выполнения для этого ресурса не вызывается локально метод 'close()'. |
Предупреждение |
|
Потенциальная утечка ресурса |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение, если локальная переменная имеет тип 'java.lang.AutoCloseable' (совместимость >= 1.7) или 'java.io.Closeable' (совместимость <= 1.6), и если в потоке выполнения для этого ресурса не вызывается локально метод 'close()' для всех путей выполнения. |
Игнорировать |
|
Сериализуемый класс без serialVersionUID |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении типа, реализующего 'java.io.Serializable', но не имеющего поля serialVersionUID. |
Предупреждение |
|
Отсутствует синхронизированный модификатор в наследуемом методе |
Если эта опция включена, то компилятор выдаст сообщение об ошибке или предупреждение при обнаружении унаследованного метода, в котором отсутствует синхронизированный модификатор. |
Игнорировать |
|
Класс переопределяет 'equals()', но не 'hashCode()' |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении класса, переопределяющего 'equals()', но не 'hashCode()'. |
Игнорировать |
|
Объявление поля, скрывающее другое поле или переменную: |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение, если объявление поля скрывает другое унаследованное поле. |
Игнорировать |
|
Объявление локальной переменной, скрывающее другое поле или переменную: |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение, если объявление локальной переменной скрывает другое поле или переменную. |
Игнорировать |
|
Добавить параметры конструктора или метода set |
Если эта опция включена, то компилятор также выдаст ошибку или предупреждение, если параметр конструктора или метода set скрывает другое поле или переменную. |
Выключена |
|
Тип параметра скрывает другой тип |
Если эта опция включена, то компилятор выдаст сообщение об ошибке или предупреждение, если параметр типа внутреннего класса скрывает внешний тип. |
Предупреждение |
|
Метод не переопределяет метод, видимый в пакете |
Метод default для пакета невидим в другом пакете и, следовательно, его нельзя переопределить. Если эта опция включена, то компилятор будет сообщать об этом как об ошибке или о предупреждении. |
Предупреждение |
|
Конфликт метода интерфейса с защищенным методом 'Object' |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение, когда обнаружит, что интерфейс определяет метод, несовместимый с ненаследуемым методом Object. Пока этот конфликт не будет устранен, реализовать такой интерфейс будет нельзя, например: interface I { int clone();} |
Предупреждение |
|
Устаревший API |
При включении этой опции компилятор будут выдавать для API, которые не рекомендуется использовать, либо сообщение об ошибке, либо предупреждение. |
Предупреждение |
|
Извещать об использовании устаревших API в устаревшем коде |
Если эта опция включена, то компилятор сообщит об обнаружении устаревших API в устаревшем коде. Серьезность неполадки определяется опцией "Устаревшие API". |
Выключена |
|
Извещать о переопределении или реализации устаревшего метода |
Если эта опция включена, то компилятор сообщит об обнаружении переопределения или реализации устаревшего метода. Серьезность неполадки определяется опцией "Устаревшие API". |
Выключена |
|
Запрещенная ссылка (правила доступа) |
При включении этой опции компилятор будет сообщать о запрещенной ссылке в правилах доступа. |
Ошибка |
|
Нежелательная ссылка (правила доступа) |
При включении этой опции компилятор будет сообщать о нежелательной ссылке в правилах доступа. |
Предупреждение |
|
Значение локальной переменной не используется |
При включении этой опции компилятор будет выдавать предупреждение или сообщение об ошибке, если объявлена локальная переменная, но ее значение ни разу не используется в ее области действия. |
Предупреждение |
|
Значение параметра не используется |
При включении этой опции компилятор будет выдавать предупреждение или сообщение об ошибке, если объявлен параметр, но его значение ни разу не используется в его области действия. |
Игнорировать |
|
Игнорировать в переопределяющих и реализующих методах |
При включении этой опции компилятор также будет выдавать сообщение об ошибке или предупреждение, если параметр объявлен, но не используется в этой области в переопределяющих или реализующих методах. |
Включен |
|
Игнорировать параметры с тегом '@param' |
Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение о том, что непрочитанный параметр документирован с тегом '@param'. |
Включен |
|
Неиспользованный параметр типа |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении неиспользуемого параметра типа. |
Игнорировать |
|
Неиспользуемое объявление импорта |
Если эта опция включена, то компилятор выдаст ошибку или предупреждение при обнаружении неиспользуемых ссылок на объявление импорта. |
Предупреждение |
|
Неиспользуемый элемент с модификатором private |
При включении этой опции компилятор будет выдавать предупреждение или сообщение об ошибке, если объявлен элемент с модификатором private, который ни разу не используется в этом же модуле. |
Предупреждение |
|
Ненужный оператор 'else' |
Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение при обнаружении ненужного оператора else (например, if (condition) return; else doSomething();). |
Игнорировать |
|
Ненужная операция преобразования типов или 'instanceof': |
Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение при обнаружении лишнего приведения типов или оператора 'instanceof' (например, if (object instanceof Object) return;). |
Игнорировать |
|
Ненужное объявление генерируемой исключительной ситуации |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего объявления исключительной ситуации. |
Игнорировать |
|
Игнорировать в переопределяющих и реализующих методах |
При включении этой опции компилятор не будет выдавать сообщение об ошибке или предупреждение при обнаружении лишнего объявления исключительной ситуации в методе, который переопределяет или реализует другой метод. |
Включен |
|
Игнорировать исключительные ситуации, задокументированные в тегах '@throws' или '@exception' |
Если эта опция включена, компилятор не будет выдавать сообщение об ошибке или предупреждение о том, что тег '@throws' или '@exception' содержит ненужное объявление сгенерированной исключительной ситуации. |
Включен |
|
Игнорировать 'Exception' и 'Throwable' |
При включении этой опции компилятор не будет выдавать сообщение об ошибке или предупреждение при обнаружении лишних объявлений исключительных ситуаций как 'Exception' и 'Throwable'. |
Включен |
|
Ненужная метка 'break' или 'continue' |
Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение при обнаружении неиспользуемой метки 'break' или 'continue'. |
Предупреждение |
|
Лишний базовый интерфейс |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении типа, реализующего интерфейс, который уже реализован одним из базовых типов. |
Игнорировать |
|
Операция с непроверенным параметризуемым типом |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении операции с непроверенным параметризуемым типом. |
Предупреждение |
|
Использование примитивного типа |
Если эта опция включена, компилятор будет выдавать сообщение об ошибке или предупреждение в случае обнаружения применения непараметризованного типа (например, List вместо List<String>). |
Предупреждение |
|
Параметр шаблонного типа, объявленный в связывании типа final |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении типа, объявленного в связывании типа final. |
Предупреждение |
|
Игнорировать неизбежные неполадки параметризуемых типов по причине непараметризованных API |
При включении этой опции компилятор будет игнорировать ошибки с параметризуемым типом, которую не в состоянии устранить программист, поскольку API уже содержит примитивные типы. Примером может быть тип, который вынужденно будет использовать примитивные типы в сигнатуре метода и возвращать типы, поскольку методы, которые он переопределяет из базового типа, объявлены с использованием примитивных типов. Старый API постепенно приводится к параметризуемым типам. В этом случае большинство этих ошибок исчезнет, или компилятор будет выдавать ошибку аргументов типов. Для простых ссылок в сигнатурах методов снова возникнет неполадка простого типа. |
Выключена |
|
Отсутствует аннотация '@Override' |
При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если в объявлении метода, переопределяющего другой метод, нет аннотации @Override. |
Игнорировать |
|
Включить реализации методов интерфейсов (начиная с 1.6) |
При включении этой опции компилятор будет выдавать сообщение об
ошибке или предупреждение в случае обнаружения метода, переопределяющего или
реализующего метод, объявленный в интерфейсе, если отсутствует аннотация
'@Override'. |
Включен |
|
Отсутствует аннотация '@Deprecated' |
При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если в объявлении устаревшего типа нет аннотации '@Deprecated'. |
Игнорировать |
|
Аннотация используется как базовый интерфейс |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение при обнаружении реализации типом аннотации. Это возможно по правилам языка, но не рекомендуется. |
Предупреждение |
|
Необработанный маркер в '@SuppressWarnings' |
При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если он встречает неизвестные маркеры в аннотации '@SuppressWarnings'. |
Предупреждение |
|
Включить аннотации '@SuppressWarnings' |
При включении этой опции компилятор будет обрабатывать аннотации '@SuppressWarnings'. Если эта опция выключена, то он будет действовать, как если бы все аннотации '@SuppressWarnings' были удалены. |
Включен |
|
Неиспользуемый маркер '@SuppressWarnings' |
При включении этой опции компилятор будет сообщать об ошибке или предупреждении, если он встречает неиспользуемые маркеры в аннотации '@SuppressWarnings'. |
Предупреждение |
|
Подавлять необязательные ошибки посредством '@SuppressWarnings' |
Если эта опция включена, аннотация '@SuppressWarnings' будет также подавлять необязательные ошибки компилятора, то есть опции, для которых задано значение "Error". Обязательные ошибки компиляции подавить невозможно. |
Выключена |
|
Обращение к пустому указателю |
Если эта опция включена, то компилятор выдаст сообщение об ошибке или предупреждение при обнаружении локальной переменной, которая однозначно является пустой ссылкой. Обратите внимание, что анализ не может выявить обращение к пустому указателю, смотрите Потенциальное обращение к пустому указателю. |
Предупреждение |
|
Потенциальное обращение к пустому указателю |
Если эта опция включена, компилятор выдаст сообщений об ошибке или предупреждение при обнаружении локальной переменной, которая может быть пустой, без ссылки. Обратите внимание, что анализ в данном случае довольно консервативен, он принимает во внимание только подозрительные варианты. Качество анализа возрастает при использовании аннотаций для null, которые включаются опцией Включить анализ с аннотациями для null |
Игнорировать |
|
Избыточная проверка нулевых значений |
Если эта опция включена, компилятор выдаст сообщение об ошибке или предупреждение, если локальная переменная не должна проверяться на нулевое значение. |
Игнорировать |
|
Включить 'assert' в анализ null |
При включении этой опции компилятор будет учитывать оператор 'assert' при анализе на null. |
Выключена |
|
Включить анализ с аннотациями для null |
Если эта опция включена, то компилятор будет учитывать аннотации @Nullable, @NonNull и @NonNullByDefault при анализе того, включает ли данный тип значение 'null'. Анализ дополнительно управляется следующими опциями. См. также Использование аннотаций null. |
Выключена |
|
Нарушение спецификации null |
В зависимости от значения этого параметра компилятор сообщит об ошибке или предупреждении в следующих ситуациях:
Выражение считается допускающим значение null, если оно либо может принимать значение |
Ошибка |
|
Конфликт между аннотациями null и вычисляемым значением null |
В зависимости от значения этого параметра компилятор сообщит об ошибке или предупреждении в следующих ситуациях:
|
Ошибка |
|
Непроверенное преобразование из типа без аннотации в тип с @NonNull |
В зависимости от значения этого параметра компилятор сообщит об ошибке или предупреждении в следующих ситуациях:
Непроверяемое преобразование обычно является следствием использования других переменных или методов без аннотаций. |
Предупреждение |
|
Избыточная аннотация о null |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение, когда применяется аннотация nonnull, хотя это уже известно по умолчанию в данном расположении. Такое значение по умолчанию можно установить, используя аннотацию @NonNullByDefault. |
Предупреждение |
|
Параметр '@NonNull' не аннотирован в переопределяющем методе |
Если эта опция включена, то компилятор выдаст сообщение об ошибке или предупреждение для параметра метода, который переопределяет унаследованный метод, если выполнены все следующие условия:
|
Предупреждение |
|
Отсутствует аннотация '@NonNullByDefault' в пакете |
При включении этой опции компилятор будет выдавать сообщение об ошибке или предупреждение в следующих случаях:
|
Игнорировать |
|
Использовать аннотации по умолчанию для спецификаций null |
При включении этой опции компилятор будет использовать набор аннотаций по умолчанию для спецификаций null. Эти аннотации входят в комплект org.eclipse.jdt.annotation SDK Eclipse. В проектах можно указать другие имена аннотаций, но компилятор Eclipse поддерживает только семантику аннотаций по умолчанию:
|
Включен |
|
Наследование аннотаций null |
Когда этот параметр включен, компилятор проверяет каждый метод без явных аннотаций null: Если он переопределяет метод, имеющий аннотации null, он будет обрабатывать текущий метод так, как если бы он имел такие же аннотации, что и переопределенный метод. Наследование аннотаций будет использовать фактическую возможность нулевого значения переопределенного метода после транзитивного применения наследования и после применения возможности нулевого значения по умолчанию на месте переопределенного метода. Если другие неявные аннотации null (из nonnull по умолчанию и/или переопределенных методов) применимы к такому же типу в сигнатуре метода, это помечается как ошибка, и должны быть использованы явные аннотации null для однозначности. |
Выключена |
|
Включить синтаксический анализ нулевых значений для полей |
Когда этот параметр включен, компилятор будет обнаруживать определенные синтаксические совокупности, где предупреждение о нулевом значении для ссылки на поле обычно выдается, но может быть подавлено при низкой вероятности того, что та же ссылка на поле была непосредственно перед этим ненулевой. При использовании этой опции просмотрите эти подсказки. |
Выключена |
Если опция Считать все ошибки компилятора критическими включена, то все ошибки, неустранимые или устранимые, ведут к невозможности выполнения кода. Если опция выключена, то выполнение останавливается только в случае критической ошибки (например, синтаксическая ошибка, ошибка типов или нарушение спецификации языка Java).
