Java: полный список параметров @SuppressWarnings (...) (в Netbeans)? - PullRequest
12 голосов
/ 12 декабря 2010

Netbeans предоставляет множество пользовательских «подсказок», которые похожи на предупреждения, только то, что большинство из них не может быть подавлено (просто отключено IDE-глобально).

Но теперь я смотрю на код, который использует

@SuppressWarnings("element-type-mismatch")

для подавления подсказки / предупреждения, которое называется «подозрительный вызов метода» (например, remove(...) для коллекции с «неправильным» типом).

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

Итак, есть ли «волшебный список» таких параметров?

Как, например, подавить подсказку / предупреждение "возвращение поля сбора"?

ПРИМЕЧАНИЕ: для этот похожий вопрос , "несоответствие типов элементов" не указано в списке .

Ответы [ 3 ]

12 голосов
/ 19 апреля 2011

После краткого ознакомления с исходным кодом NB я нашел их в некоторых классах 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, который многие из них расширяются, легко предоставляет эту возможность ... Это только имена-подавители, поэтому, чтобы найти сопоставление с именами предупреждений, которые они представляют, требуется более глубокий анализ источника.

1 голос
/ 24 ноября 2015

Ну, список трудно найти. Нашел источники hint classes Netbeans.

Таким образом, «список» здесь . (также посмотрите на субпакеты; например, jdk и perf)

Все классы могут быть подавлены с использованием его имени camel cases, например:

// org.netbeans.modules.java.hints.jdk.UnnecessaryBoxing.java
@SuppressWarnings("UnnecessaryBoxing") 
1 голос
/ 12 декабря 2010

Документация гласит:

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

Поскольку NetBeans использует javac, я думаю, вот список .

См. Также этот вопрос .

Если вы используете другой компилятор или какой-либо плагин компилятора, найдите его документацию.

...