如何在Intellij Idea中find所有未使用的类?

有一个检查“未使用的声明”,可以findIntellij Idea中所有未使用的代码。 (看到这个问题 )但我想find所有未使用的类, 而不是方法,variables等只有类。 (在3000个结果列表中很难find类)。 我怎么能做到这一点?

  • Ctrl + Shift + A
  • input“未使用的declar”
  • 双击“未使用的声明”

设置会popup

  • 点击Java /声明冗余/未使用的声明
  • 在右下方select“在飞行编辑器设置”
  • 取消勾选字段,…,检查参数。 只应勾选检查类别。
  • 按OK

closures

  • 在菜单栏上点击按名称分析/运行检查(或Ctrl + Alt + Shift + I
  • 插入文字“未使用的声明”
  • select“未使用的声明Java |声明冗余”

search开始

  • 在Idea的底部检查工作状态,当结束时:享受清理杂乱码的结果和伟大的感觉。 🙂

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

IDEA(和AFAIK,NetBeans)查找未使用的声明是用于私有成员和局部variables:从该类或范围之外不能访问的事情,即使是dynamic的。 (好吧,至less不要用reflection或JVM黑客来做你不应该做的事情)。不pipe外部代码如何处理你的库,它都不会导致这些东西被使用,因为它们的范围是有限的, IDE可以看到所有的东西。 编译器可以通过查看你的代码来确定这一点。

对于类,即使它们不具有public访问权限,也可以使用Class.forName()dynamic引用它们,而这实际上是在实时代码中发生的。 所以,即使它们不是在你的项目代码中明显使用的,也可以根据你使用你的库运行的外部代码来使用它们。 所以IDE不能保证删除这些类不会改变外部可观察的行为。

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

也许你应该看看Unused Symbol检查与以下设置:

在这里输入图像说明

我不确定这是否会回答你的问题,但我曾经使用一个工具Fortify来运行代码审查规则的项目,这正好指向未使用的import,死代码,未使用的类等。这是一个付费软件,但我肯定会有一些免费的插件/软件将可用于相同的。