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

2022-08-31 07:37:01

有一个检查“未使用的声明”,可以在Intellij Idea中找到所有未使用的代码。(请参阅如何使用 IntelliJ IDEA 查找所有未使用的代码?但我想找到所有未使用的类,而不是方法,变量等。只有类。(很难在 3000 个结果列表中只找到类)。我该怎么做?


答案 1
  • 按下 ++ (在 Mac 中)CtrlShiftACommand+Shift+A)
  • 输入“未使用的声明”
  • 双击“未使用的声明”

将弹出设置

  • 单击 Java/声明冗余/未使用的声明
  • 在右下角选择“动态编辑器设置”
  • 取消选中检查字段,...,检查参数。只应勾选“检查类”。
  • 按确定

设置关闭

  • 在菜单栏上,单击“分析/按名称运行检查”(或+++ - 在Mac中)CtrlAltShiftICommand+Option+Shift+I)
  • 插入案文“未使用的 decla”
  • 选择“未使用的声明 Java|声明冗余”

搜索开始

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

答案 2

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

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

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

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


推荐