如何在 Intellij Idea 找到所有未使用的课程?

有一个检查“未使用的声明”,可以找到所有未使用的代码在 Intellij Idea (见 如何使用 IntelliJIDEA 查找所有未使用的代码?) 但我想找到所有未使用的类,没有方法,变量等。只是课程。(很难只在3000个结果列表中找到类)。我怎么能做到呢?

77430 次浏览

也许你应该在 Unused Symbol检查中使用以下设置:

enter image description here

我不确定这是否能回答你的问题,但是我在过去使用过一个工具 Fortify 在项目上运行代码审查规则,它精确地指向未使用的导入、死代码、未使用的类等。这是一个付费软件,但我肯定会有一些免费的插件/软件将提供相同的。

我不认为这是可行的。我怀疑这个特性故意被排除在 IDE 之外,因为它不能像其他“删除未使用的 XXX”重构那样安全地使用。

IDEA (以及 AFAIK、 NetBeans)寻找的未使用的声明是针对私有成员和局部变量的: 即使从该类或作用域之外也无法访问的东西,即使是动态访问。(好吧,至少不要用反射或 JVM 黑客做你不应该做的事情。)无论外部代码如何处理库,都不会导致使用这些内容,因为它们的作用域是有限的,IDE 可以看到所有内容。编译器可以通过查看代码来确定这一点。

对于类,即使它们没有 public访问权,也可以用 Class.forName()动态地引用它们,这实际上是在实时代码中发生的。因此,即使它们显然没有在项目代码中使用,也可能根据您或使用库运行的外部代码使用它们。因此 IDE 不能保证删除这些类不会改变外部可观察到的行为。

这就是为什么我认为 IDEA 没有提供这种行为: 它可能给用户错误的安全期望,删除它们不是安全的重构。

  • Ctrl + Shift + A(在 Mac Command + Shift + A)
  • 输入“未使用的声明”
  • 双击“未使用声明”

设置将弹出

  • 点击 Java/声明冗余/未使用声明
  • 在右下角选择“在飞行编辑器设置”
  • 取消勾选字段,... ,检查参数。只有检查类应该被勾选。
  • 按 OK 键

设置关闭

  • 在菜单栏上,点击名称分析/运行检查(或者在 Mac Command + Option + Shift + I中的 Ctrl + Alt + Shift + I)
  • 插入文本“未使用的 Decla”
  • 选择“未使用的声明 Java | 声明冗余”

开始搜索

  • 检查工作状态在底部的想法,当完成时: 享受结果和清理混乱的代码的伟大感觉。:)

我发现,intellij 将声明那些没有被实例化为未使用的类,即使它们实际上在声明中使用。所以我通常做的是 Analyze,然后在 Unused declaration中右键单击每一个,然后单击查找用法。如果弹出窗口显示“没有使用”,那么可以安全地从问题菜单直接删除,如下所示。这是我找到的最快的方法-否则 IntelliJ autodelte 将删除使用的类,只是没有实例化。

enter image description here

注意,如果你看不到弹出窗口告诉我这个类没有用法,我选择删除。