Каков список допустимых имен предупреждений @SuppressWarnings в Java?



каков список допустимых @SuppressWarnings предупреждения в Java?



бит, который находится между ("") in @SuppressWarnings("").

757   7  

7 ответов:

Это зависит от вашей IDE или компилятора.

здесь список для Eclipse Галилео:

  • все подавить все предупреждения
  • бокс для подавления предупреждений относительно операций бокса / распаковки
  • cast для подавления предупреждений относительно операций приведения
  • dep-ann для подавления предупреждений относительно устаревший аннотация
  • осуждение для подавления предупреждений относительно осуждения
  • fallthrough для подавления предупреждений относительно пропущенных перерывов в переключателе заявления
  • наконец-то чтобы подавить предупреждения относительно окончательного блока, который этого не делает возвратить
  • прячась для подавления предупреждений относительно локальных объектов, скрывающих переменную
  • неполной-переключатель to подавление предупреждений относительно отсутствующих записей в операторе switch (enum case)
  • nls для подавления предупреждений относительно не-nls строковых литералов
  • null для подавления предупреждений относительно нулевого анализа
  • ограничение подавить предупреждения относительно использования обескураженного или запрещенные ссылки
  • серийный для подавления предупреждений относительно пропавших без вести serialVersionUID поле для сериализуемого класса
  • статический доступа для подавления предупреждений относительно неправильной статики доступ
  • синтетическая-доступ для подавления предупреждений относительно неоптимизирована доступ из внутренних классов
  • unchecked для подавления предупреждений относительно беспрепятственно операции
  • unqualified-field-access для подавления предупреждений относительно поля доступ неквалифицированный
  • не используется для подавления предупреждений относительно неиспользуемого кода

список для индиго добавляет:

  • документация для подавления предупреждений относительно предупреждений javadoc
  • rawtypes для подавления предупреждений относительно использования сырьевых видов
  • статический-метод для подавления предупреждений относительно методов, которые могут быть объявлен как статический
  • супер для подавления предупреждений относительно переопределения метода без супер вызовов

список Джуно добавляет:

  • ресурс подавлять предупреждения относительно использования ресурсов типа Closeable
  • sync-override для подавления предупреждений из-за отсутствия синхронизации при переопределении синхронизированной метод

Кеплер и Луна используют тот же список токенов, что и Юнона ( list).

остальные будут похожи, но различаются.

все значения разрешены (непризнанные игнорируются). Список распознанных является специфичным для компилятора.

на Учебники Javaunchecked и deprecation перечислены как два предупреждения, требуемые спецификацией языка Java, поэтому они должны быть действительны со всеми компиляторами:

каждое предупреждение компилятора относится к категории. В спецификации языка Java перечислены две категории: устаревание и непроверенный.

специальные разделы внутри Спецификация Языка Java, где они определены, не согласованы по версии. В спецификации Java SE 8 unchecked и deprecation перечислены как предупреждения компилятора в разделах 9.6.4.5. @SuppressWarnings и 9.6.4.6 @Deprecated, соответственно.

для компилятора Sun, работает javac -X дает список всех значений, распознанных этой версией. Для 1.5.0_17, список выглядит следующим образом:

  • все
  • осуждение
  • unchecked
  • fallthrough
  • путь
  • серийный
  • наконец-то

список зависит от компилятора. Но вот значения, поддерживаемые в затмение:

  • allDeprecation устаревание даже внутри устаревшего кода
  • allJavadoc недопустимый или отсутствующий javadoc
  • assertIdentifier вхождение assert используется в качестве идентификатора
  • бокс преобразование автоупаковка
  • charConcat когда массив символов используется в конкатенации строк без явного преобразования в строку
  • conditionAssign возможно случайное логическое задание
  • constructorName метод с имя конструктора
  • dep-ann отсутствует @Deprecated аннотация
  • осуждение использование устаревшего типа или члена снаружи устаревший код
  • уныние использование типов, соответствующих запрещенному правилу доступа
  • пустой блок недокументированные пустой блок
  • enumSwitch,неполной-переключатель неполное перечисление переключатель
  • fallthrough возможный случай провала
  • fieldHiding поле скрывает другую переменную
  • finalBound тип параметра с окончательной привязкой
  • наконец-то наконец блок не завершается нормально
  • запрещен использование типов, соответствующих запрещенному правилу доступа
  • прячась макрос для fieldHiding, localHiding, typeHiding и maskedCatchBlock
  • indirectStatic косвенную ссылку на статический член!--9-->
  • intfAnnotation тип аннотации, используемый в качестве супер интерфейса
  • intfNonInherited совместимость не унаследованных методов интерфейса
  • документация недействительным документации
  • localHiding локальная переменная скрывает другую переменную
  • maskedCatchBlocks скрытый подвох блок
  • nls не-nls строковые литералы (отсутствие тегов //$NON-NLS -)
  • noEffectAssign назначение без эффекта
  • null потенциальная недостающая или избыточная нулевая проверка
  • nullDereference отсутствует нулевой чек
  • over-ann отсутствует @ Override аннотация
  • paramAssign назначение параметра
  • pkgDefaultMethod попытка переопределить пакет-по умолчанию метод
  • raw использование типа raw (вместо параметризованного типа)
  • точка с запятой ненужная точка с запятой или пустой оператор
  • серийный отсутствует serialVersionUID
  • specialParamHiding конструктор или параметр сеттера скрывает другое поле
  • статический доступа макрос для indirectStatic и staticReceiver
  • staticReceiver если нестатический приемник используется для получения статического поля или вызова статического метода
  • супер переопределение метода без супер вызова
  • подавления включить @SuppressWarnings
  • syntheticAccess, synthetic-access при выполнении синтетического доступа для innerclass
  • задачи включить поддержку тегов задач в исходный код
  • typeHiding параметр типа скрывает другой тип
  • unchecked снят операции типа
  • unnecessaryElse ненужное предложение else
  • unqualified-field-access, unqualifiedField неквалифицированные ссылка на поле
  • неиспользованный макрос для unusedArgument, unusedImport, unusedLabel, unusedLocal, unusedPrivate и непригодный для использования
  • unusedArgument неиспользуемый аргумент метода
  • unusedImport неиспользуемая ссылка на импорт
  • unusedLabel неиспользуемая метка
  • unusedLocal неиспользованная локальная переменная
  • unusedPrivate объявление неиспользуемого частного члена
  • unusedThrown неиспользуемое объявленное брошенное исключение
  • uselessTypeCheck ненужная операция cast / instanceof
  • varargsCast аргумент varargs нуждается в явном приведении
  • warningToken необработанный предупреждающий маркер в @SuppressWarnings

Sun JDK (1.6) имеет более короткий список поддерживаемых предупреждения:

  • осуждение проверка использования амортизированных изделий.
  • unchecked дайте больше детали для предупреждений преобразования непроверенных, которые получают мандат спецификацией языка Java.
  • серийный предупреждать об отсутствии определений serialVersionUID в сериализуемых классах.
  • наконец-то предупреждать о предложениях finally, которые не могут завершиться нормально.
  • fallthrough проверьте, что блоки Switch для проваливаются случаи и предоставляют предупреждающее сообщение любому, что найдены.
  • путь Проверьте несуществующий путь в пути среды (например, classpath).

последние доступные javac (1.6.0_13) для mac имеют следующие поддерживаемые предупреждения

  • все
  • cast
  • осуждение
  • divzero
  • пустой
  • unchecked
  • fallthrough
  • путь
  • серийный
  • наконец-то
  • переопределяет

новый фаворит для меня @SuppressWarnings("WeakerAccess") в IntelliJ, который удерживает его от жалоб, когда он думает, что у вас должен быть более слабый модификатор доступа, чем вы используете. Мы должны иметь открытый доступ для некоторых методов поддержки тестирования, и @VisibleForTesting аннотация не предотвращает предупреждения.

и это, кажется, гораздо более полный список, где я нашел некоторые предупреждения, характерные для Android-Studio, которые я не мог найти в другом месте (например, SynchronizeOnNonFinalField)

https://jazzy.id.au/2008/10/30/list_of_suppresswarnings_arguments.html

О, теперь так правила противопоказаны так ограничения. С одной стороны, я должен скопировать список, а не только ссылку. Но с другой стороны, это превысило бы максимально допустимое количество символов. Так что будем надеяться, что связь не порвется.

JSL 1.7

документация Oracle отмечает:

  • unchecked: непроверенные предупреждения определяются строкой "непроверено".
  • deprecation: компилятор Java должен выдавать предупреждение об устаревании, когда используется тип, метод, поле или конструктор, объявление которого аннотировано аннотацией @Deprecated (т. е. переопределено, вызвано или указано по имени), если только: [...] Использование находится внутри объекта, который является аннотировано для подавления предупреждения с помощью аннотации @SuppressWarnings ("deprecation"); или

затем он объясняет, что реализации могут добавить и свои собственные документа:

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

Я просто хочу добавить, что есть главный список параметров подавления IntelliJ по адресу:https://gist.github.com/vegaasen/157fbc6dce8545b7f12c

Это выглядит довольно обширный. Частично:

Warning Description - Warning Name

"Magic character" MagicCharacter 
"Magic number" MagicNumber 
'Comparator.compare()' method does not use parameter ComparatorMethodParameterNotUsed 
'Connection.prepare*()' call with non-constant string JDBCPrepareStatementWithNonConstantString 
'Iterator.hasNext()' which calls 'next()' IteratorHasNextCallsIteratorNext 
'Iterator.next()' which can't throw 'NoSuchElementException' IteratorNextCanNotThrowNoSuchElementException 
'Statement.execute()' call with non-constant string JDBCExecuteWithNonConstantString 
'String.equals("")' StringEqualsEmptyString 
'StringBuffer' may be 'StringBuilder' (JDK 5.0 only) StringBufferMayBeStringBuilder 
'StringBuffer.toString()' in concatenation StringBufferToStringInConcatenation 
'assert' statement AssertStatement 
'assertEquals()' between objects of inconvertible types AssertEqualsBetweenInconvertibleTypes 
'await()' not in loop AwaitNotInLoop 
'await()' without corresponding 'signal()' AwaitWithoutCorrespondingSignal 
'break' statement BreakStatement 
'break' statement with label BreakStatementWithLabel 
'catch' generic class CatchGenericClass 
'clone()' does not call 'super.clone()' CloneDoesntCallSuperClone

Comments

    Ничего не найдено.