Java:@SuppressWarnings(...)参数的完整列表(在Netbeans中)?

Netbeans 提供了许多自定义的“提示”,这些提示类似于警告,只是大多数提示无法抑制(只是禁用了 IDE-global)。

但是现在我看的是使用

@SuppressWarnings("element-type-mismatch")

以禁止显示称为“可疑方法调用”的提示/警告(例如,对于具有“错误”类型的集合,删除(...)。

好吧,我永远不会想到用一个名为“元素类型不匹配”的-参数来抑制名为“可疑方法调用”的提示,但显然,它是有效的。SuppressWarnings

那么,有没有这样的参数的“神奇列表”呢?

例如,如何禁止显示提示/警告“返回集合字段”?

注意:对于此类似问题,未列出“元素类型不匹配”。


答案 1

在简要查看了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 提示都是可抑制的...不知道为什么,“因为抽象Hint类,其中许多类很容易扩展,提供了这种能力......不过,这些只是抑制名称,因此要找到它们所代表的警告名称的映射,需要更深入地挖掘源。


答案 2

文档说:

编译器供应商应将他们支持的警告名称与此注释类型一起记录。鼓励他们合作,以确保相同的名称在多个编译器中工作。

由于 NetBeans 使用的是 javac,因此下面是一个列表

另请参阅此问题

如果您使用的是其他编译器或某些编译器插件,请搜索其文档。


推荐