有一个检查“未使用的声明”,可以找到所有未使用的代码在 Intellij Idea (见 如何使用 IntelliJIDEA 查找所有未使用的代码?) 但我想找到所有未使用的类,没有方法,变量等。只是课程。(很难只在3000个结果列表中找到类)。我怎么能做到呢?
也许你应该在 Unused Symbol检查中使用以下设置:
Unused Symbol
我不确定这是否能回答你的问题,但是我在过去使用过一个工具 Fortify 在项目上运行代码审查规则,它精确地指向未使用的导入、死代码、未使用的类等。这是一个付费软件,但我肯定会有一些免费的插件/软件将提供相同的。
我不认为这是可行的。我怀疑这个特性故意被排除在 IDE 之外,因为它不能像其他“删除未使用的 XXX”重构那样安全地使用。
IDEA (以及 AFAIK、 NetBeans)寻找的未使用的声明是针对私有成员和局部变量的: 即使从该类或作用域之外也无法访问的东西,即使是动态访问。(好吧,至少不要用反射或 JVM 黑客做你不应该做的事情。)无论外部代码如何处理库,都不会导致使用这些内容,因为它们的作用域是有限的,IDE 可以看到所有内容。编译器可以通过查看代码来确定这一点。
对于类,即使它们没有 public访问权,也可以用 Class.forName()动态地引用它们,这实际上是在实时代码中发生的。因此,即使它们显然没有在项目代码中使用,也可能根据您或使用库运行的外部代码使用它们。因此 IDE 不能保证删除这些类不会改变外部可观察到的行为。
public
Class.forName()
这就是为什么我认为 IDEA 没有提供这种行为: 它可能给用户错误的安全期望,删除它们不是安全的重构。
设置将弹出
设置关闭
开始搜索
我发现,intellij 将声明那些没有被实例化为未使用的类,即使它们实际上在声明中使用。所以我通常做的是 Analyze,然后在 Unused declaration中右键单击每一个,然后单击查找用法。如果弹出窗口显示“没有使用”,那么可以安全地从问题菜单直接删除,如下所示。这是我找到的最快的方法-否则 IntelliJ autodelte 将删除使用的类,只是没有实例化。
Analyze
Unused declaration
注意,如果你看不到弹出窗口告诉我这个类没有用法,我选择删除。