Java: полный список параметров @SuppressWarnings (...) (в Netbeans)?
Netbeans предоставляет множество пользовательских "подсказок", которые напоминают предупреждения, только то, что большинство из них не могут быть подавлены (просто отключена IDE-глобально).
Но теперь я смотрю код, который использует
@SuppressWarnings("element-type-mismatch")
чтобы подавить подсказку/предупреждение, которая называется "вызов подозрительных методов" (например, remove(...)
для коллекции с "неправильным" типом).
Ну, я бы никогда не пришел к идее подавить намек под названием "подозрительный вызов метода" с SuppressWarnings
-параметром, называемым "несоответствие типа элемента", но, видимо, он работает.
Итак, есть ли "волшебный список" таких параметров?
Как, например, я могу подавить подсказку/предупреждение "возврат поля сбора"?
ПРИМЕЧАНИЕ: для этот аналогичный вопрос, "элемент-несоответствие типа" не указан.
Ответы
Ответ 1
После краткого просмотра кода NB-source я нашел их в некоторых классах java.hint:
@Hint(category="bitwise_operations", suppressWarnings="IncompatibleBitwiseMaskOperation")
@Hint(category="initialization", suppressWarnings="LeakingThisInConstructor")
@Hint(category="logging", suppressWarnings={"NonConstantLogger"}) //NOI18N
@Hint(category="logging", suppressWarnings={"ClassWithMultipleLoggers"}) //NOI18N
@Hint(category="logging", suppressWarnings={"ClassWithoutLogger"}, enabled=false) //NOI18N
@Hint(category="code_maturity", suppressWarnings="UseOfObsoleteCollectionType")
@Hint(category="initialization", suppressWarnings="OverridableMethodCallInConstructor")
@Hint(category="bitwise_operations", suppressWarnings="PointlessBitwiseExpression")
@Hint(category="code_maturity", suppressWarnings="CallToThreadDumpStack")
@Hint(category="bitwise_operations", suppressWarnings="ShiftOutOfRange")
@Hint(category="initialization", suppressWarnings="StaticNonFinalUsedInInitialization")
@Hint(category="code_maturity", enabled = false, suppressWarnings="UseOfSystemOutOrSystemErr")
@Hint(category="code_maturity", suppressWarnings="CallToPrintStackTrace")
По-видимому, не все IDE-подсказки, отображаемые в качестве предупреждений, становятся подавляемыми...
Не знаю, почему, хотя, потому что класс AbstractHint, многие из которых расширяются, легко предоставляет эту способность...
Это всего лишь имена подавляющих имен, поэтому, чтобы найти сопоставление с именами предупреждений, которые они представляют, требуется более глубокое копирование в источнике.
Ответ 2
В документации говорится:
Поставщики компилятора должны документировать имена предупреждений, которые они поддерживают, в сочетании с этим типом аннотации. Им предлагается сотрудничать, чтобы гарантировать, что одни и те же имена работают с несколькими компиляторами.
Поскольку NetBeans использует javac, я думаю, вот список.
См. также этот вопрос.
Если вы используете другой компилятор или какой-либо плагин компилятора, выполните поиск его документации.
Ответ 3
Ну, список трудно найти. Найдите источники hint classes
Netbeans.
Итак, "список" здесь. (также посмотрите на подпакеты, например jdk
и perf
)
Все классы могут быть подавлены с помощью имени camel cases
, например:
// org.netbeans.modules.java.hints.jdk.UnnecessaryBoxing.java
@SuppressWarnings("UnnecessaryBoxing")