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

Che*_*rry 112 java intellij-idea dead-code

有一个检查"未使用的声明",它可以找到Intellij Idea中所有未使用的代码.(看到这个问题)但我想找到所有未使用的类,而不是方法,变量等.只有类.(很难找到3000个结果列表中的类).我怎么能这样做?

Blo*_*ode 199

  • Ctrl+ Shift+A
  • 输入"未使用的声明"
  • 单击"未使用的声明"上的双击

将弹出设置

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

Seetings关闭

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

搜索开始

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

  • 它忽略了"只检查类"配置,因此我得到了许多不必要的结果(未使用的方法,字段等,更糟糕的是,其中许多是误报,有几个原因......). (6认同)
  • Studio 3.0中有一个更改只有检查类选项在步骤之后:选择"未使用的声明Java |声明冗余" (5认同)
  • 其中一个专门用于IntelliJ Idea用法,另一个用于通用Java.我不会说这些是重复的. (3认同)
  • 我们无需更改全局设置即可使用不同的参数运行检查。“按名称运行检查”操作将弹出检查设置。 (2认同)

Ada*_*hes 13

2023 年更新:

Ctrl + Alt + Shift + I

在此输入图像描述

单击突出显示的“未使用声明”

在此输入图像描述

选择您关心的选项。在本例中,我仅选择“类”来查找未使用的类。

请小心这一点,尽管 我发现通过引用固有地使用的类(例如通过休眠)会说它们未使用,但右键单击类并执行“查找用法”会显示其他情况。这只检查构造函数是否被显式调用。


And*_*nke 8

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

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

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

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

  • 好吧,它在实际查看文件时会使类名变灰并给你一个"删除未使用的类"的意图动作,所有缺少的就是能够自动找到它们.当然有一些方法可以破坏事物,但许多重构都是如此. (5认同)
  • 从分析安全性的角度来看,Class.forName()可能与使用反射来读取/设置类上的私有字段没有任何不同.因此,如果IntelliJ将为字段执行此操作,那么对于为什么它也不会为类执行此操作也不是可接受的答案.在任何一种情况下,分析结果都不是100%保证是安全的. (2认同)

Vic*_*Vic 2

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

在此输入图像描述