如何找到Intellij Idea中所有未使用的类?

时间:2014-03-20 02:03:51

标签: java intellij-idea dead-code

有一个检查"未使用的声明"可以在Intellij Idea中找到所有未使用的代码。 (见this question) 但我想找到所有未使用的类,方法,变量等类。 (很难找到3000个结果列表中的类)。我怎么能这样做?

4 个答案:

答案 0 :(得分:173)

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

将弹出设置

  • 点击Java /声明冗余/未使用声明
  • 在右下角选择“On the fly editor settings”
  • 取消勾选检查字段,...,检查参数。只勾选支票类。
  • 按OK

设置关闭

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

搜索开始

  • 检查Idea底部的作业状态,完成后:享受结果和清理乱码的绝佳感觉。 :)

答案 1 :(得分:9)

我不认为这是可行的。我怀疑这个功能是故意遗漏在IDE中的,因为它不能像其他“删除未使用的XXX”重构一样安全使用。

未使用的声明IDEA(和AFAIK,NetBeans)查找的是私有成员和本地变量:从类或范围之外无法访问的内容,甚至是动态内容。 (好吧,至少没有使用您不应该使用的反射或JVM黑客攻击。)无论外部代码对您的库做什么,它都不会导致这些东西被使用,因为它们的范围有限并且IDE可以看到所有这些。编译器可以通过查看代码来确定这一点。

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

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

答案 2 :(得分:0)

也许您应该使用以下设置查看Unused Symbol检查:

enter image description here

答案 3 :(得分:0)

我不确定这是否会回答你的问题,但我过去使用过一个工具作为Fortify来运行项目的代码审查规则,这正是指向未使用的导入,死代码,未使用的类等。这是付费的软件,但我相信会有一些免费的插件/软件可供使用。