【问题标题】:“Variable is never assigned” warning in IntelliJ IDEA can be suppressed only "partially"IntelliJ IDEA 中的“从不分配变量”警告只能“部分”抑制
【发布时间】:2016-12-13 15:20:38
【问题描述】:

Java EE + IntelliJ Idea 2016.3:我编写了一个类并声明了一个带有 @Inject 注释的私有字段。

通过将javax.inject.Inject 添加到设置 -> 编辑器 -> 检查 -> Java -> 声明冗余 -> 未使用的声明 - 我已成功摆脱了“检查结果”窗口中的“未使用声明”通知> 入口点 -> 注释 -> 将字段标记为在被注释时隐式写入(基于this post)。

不幸的是,该字段仍带有下划线,并且滚动条上出现黄色标记。我是单独配置还是做错了什么?

【问题讨论】:

  • 请给我们看代码。

标签: java intellij-idea code-inspection unused-variables


【解决方案1】:

有两个单独的警告。有人说该字段从未分配值,这是您禁用的值。另一个说该字段从未使用过,这是您收到的警告。

Inject 添加到设置 -> 编辑器 -> 检查 -> java -> 声明冗余 -> 未使用的声明 -> 入口点 -> 注释 -> 如果被注释,则标记为入口点

【讨论】:

  • @Inject 注释添加到“标记为入口点”部分而不是“标记字段为隐式写入”完成了这项工作。但是,在我这样做之前,警告消息是Private field 'logger' is never assigned,而不是您所说的从未使用。我am稍后在代码中使用logger 字段。同时代码检查器报告“未找到可疑代码”-可能是 Idea 中的错误。
  • 另请注意,Alt-Enter 提供了如何关闭警告的菜单条目。
  • “Alt-Enter 提供了如何关闭警告的菜单条目” - 是的,但在我的想法中它只指向“未使用的声明”。必须知道点击进入“入口点”和“注释”
【解决方案2】:

突出显示该字段,输入 Alt + Enter "Windows" 或 ⌥⏎ "Mac" 或单击灯泡。选择“抑制由 {annotation name} 注释的字段。

【讨论】:

  • 我在IDEA 2019.1.2(终极版)中没有这个选项。我现在在哪里可以找到这个选项?
【解决方案3】:

在某些实际有意义的情况下,您可以选择忽略它,

您可以做的是将受影响的区域悬停并在“Windows”中按 Alt + Enteralt/option/⌥ + 在“Mac”中输入,并选择抑制它

你会看到的,

【讨论】:

  • 我过去用过这个,但完全忘记了如何带来这个对话:D。谢谢提醒。
  • 我觉得它说“禁止 unused 警告...”有点烦人,但实际上它是“从未分配的警告”。
【解决方案4】:

这似乎是 IDEA 中的一个错误。我刚刚更新到 IDEA 2016.3.1,现在放在“入口点”部分的 @Inject@Resource 注释不起作用 - 它们必须放在“字段”窗口中(尽管当它们位于“入口点”部分时,我仍然可以观察到“旧”行为,即代码检查未检测到带注释的字段,但它们在编辑器中带有下划线并且黄色标记可见)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2013-01-23
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    相关资源
    最近更新 更多