【问题标题】:Don't show warning for unused Getters/Setters不要为未使用的 Getter/Setter 显示警告
【发布时间】:2014-12-08 22:46:29
【问题描述】:

当一个方法从不使用时,IntelliJ 会显示警告Method xxx() is never used

但是对于 POJO,我为每个属性创建 Getter/Setter,并且我不希望 IntelliJ 警告我未使用的 Getter/Setter。

有没有办法自动抑制这些警告?

【问题讨论】:

  • 我想知道,IntelliJ 怎么知道没有使用 getter/setter?通常他们是公开的!在 Eclipse 中,我们有同样的警告,只有在方法是私有的时候才会弹出。
  • @Seelenvirtuose IntelliJ 构建了一个Dependencies Structure Matrix,它可以找到方法/类/属性等的每个引用。参见jetbrains.com/idea/features/dependency_analysis.html#link8
  • Eclipse 的作用几乎相同(它构建了一个 AST)。我的评论的要点是:您无法知道您的类是否可能是其他项目中使用的库的一部分,这些方法在哪里使用。因此,您不应为未使用的公开方法显示警告。如果它是私人的,那就是另一个故事了。
  • @Seelenvirtuose 我同意你的看法。 IntelliJ 无法猜测开发人员是在制作库还是应用程序。因此,开发人员在制作库时不能依赖它,但这在开发应用程序时非常有用。
  • @Seelenvirtuose 感谢您提供 AST。现在我明白了我经常在异常中看到的这个神秘的AST Node 是什么:)

标签: java intellij-idea


【解决方案1】:

自 IDEA 2016.3 以来,现在有一个设置来执行此操作。 在Mac上使用IntelliJ,在Settings下| Editor | Inspections | Java | Declaration redundancy | Unused Declarations | Methods | Getters/setters

【讨论】:

    【解决方案2】:

    您只需按 Alt+Enter 并选择 Suppress for methods annotated by ...

    另请参阅: Telling IntelliJ IDEA which methods not to identify as unused

    【讨论】:

    • Getter/Setter 没有任何注释。这禁止我通过注释选择它们。但是您的回答解决了我的另一个问题:禁止使用 com.google.inject.Inject 注释的方法发出警告
    • 这意味着注释每个 getter/setter,所以我们可以最初添加一个“抑制”注释。没用。
    【解决方案3】:

    我建议总体上降低未使用方法的严重性。只需前往 设置 |检查 |申报冗余 |未使用的声明,并将严重性更改为“信息”或“弱警告”。

    【讨论】:

      【解决方案4】:

      我相信你可以用//noinspection注释你的方法。

      您可以导航到Settings | Inspections | Declaration redundancy | Unused Declarations 并为您的方法定义一个范围,但我相信您不能为 getters/setters 禁用它,而只能将其他方法排除在检查之外。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-14
        • 1970-01-01
        • 2019-10-08
        • 2023-02-19
        相关资源
        最近更新 更多