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")