【问题标题】:Java: complete list of @SuppressWarnings(...) parameters (in Netbeans)?Java:@SuppressWarnings(...) 参数的完整列表(在 Netbeans 中)?
【发布时间】:2010-12-11 22:12:15
【问题描述】:

Netbeans 提供了很多自定义“提示”,类似于警告,只是它们中的大多数无法被抑制(只是全局禁用 IDE)。

但现在我正在查看使用的代码

@SuppressWarnings("element-type-mismatch")

抑制称为“可疑方法调用”的提示/警告(例如 remove(...) 用于“错误”类型的集合)。

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

那么,有没有这些参数的“魔法清单”?

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

注意:对于this similar question,“元素类型不匹配”未列出

【问题讨论】:

    标签: java netbeans compiler-warnings suppress-warnings


    【解决方案1】:

    简要查看 NB 源代码后,我在一些 java.hint -classes 中找到了这些:

    @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 类提供了这种能力...... 这些只是抑制名称,因此要找到它们所代表的警告名称的映射,需要更深入地挖掘源代码。

    【讨论】:

    • @SuppressWarnings("PublicField") 适用于 NetBeans 8.2。
    【解决方案2】:

    documentation 说:

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

    由于 NetBeans 使用 javac 我认为,here is a list

    See also this question.

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

    【讨论】:

    • 嗯,这些资源都不包含“元素类型不匹配”;)是的,我搜索了与此相关的 Netbeans 文档,但没有成功。
    • 好吧,这似乎是非标准的,并且没有记录(我猜你也用谷歌搜索过)。哪个不好。
    【解决方案3】:

    这个列表很难找到。确实找到了Netbeans的hint classes的来源。

    所以“列表”是here(同时查看子包;例如jdkperf

    所有类都可以通过使用camel cases 名称来抑制,例如:

    // org.netbeans.modules.java.hints.jdk.UnnecessaryBoxing.java
    @SuppressWarnings("UnnecessaryBoxing") 
    

    【讨论】:

      猜你喜欢
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2010-11-15
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      相关资源
      最近更新 更多