有一个检查“未使用的声明”,可以在 Intellij Idea 中找到所有未使用的代码。(请参阅如何使用 IntelliJ IDEA 查找所有未使用的代码?)但我想查找所有未使用的类,而不是方法、变量等。只有类。(很难在 3000 个结果列表中只找到类)。我怎么能这样做?
5 回答
- 按Ctrl+ Shift+ A(在 Mac Command+ Shift+中A)
- 输入“未使用的声明”
- 双击“未使用的声明”
会弹出设置
- 点击Java/声明冗余/未使用声明
- 在右下角选择“动态编辑器设置”
- 取消勾选检查字段,...,检查参数。只应勾选检查类。
- 按确定
设置关闭
- 在菜单栏上,单击“按名称分析/运行检查”(或在 Mac 中为Ctrl+ Alt+ Shift+ - + + + )ICommandOptionShiftI
- 插入文本“未使用的声明”
- 选择“未使用的声明 Java|声明冗余”
搜索开始
- 完成后检查 Idea 底部的作业状态:享受结果和清理混乱代码的美妙感觉。:)
我不认为这是可行的。我怀疑这个特性被故意排除在 IDE 之外,因为它不能像其他“删除未使用的 XXX”重构那样安全地使用。
IDEA(以及 AFAIK、NetBeans)寻找的未使用声明是针对私有成员和局部变量:从该类或范围之外无法访问的东西,即使是动态的。(嗯,至少不用反射或 JVM hacking 做你不应该做的事情。)无论外部代码对你的库做什么,它都不会导致这些东西被使用,因为它们的范围是有限的,而且IDE 可以看到所有这些。编译器可以通过仅查看您的代码来确定这一点。
对于类,即使它们没有public
访问权限,也可以使用 动态引用它们Class.forName()
,这实际上发生在实时代码中。因此,即使它们显然没有在您的项目代码中使用,也可能会根据您或使用您的库运行的外部代码来使用它们。因此 IDE 不能保证删除这些类不会改变外部可观察的行为。
这就是为什么我认为 IDEA 只是不提供这种行为的原因:它可能会给用户带来错误的安全期望,并且删除它们并不是一种安全的重构。
也许您应该Unused Symbol
使用以下设置查看检查:
我不确定这是否能回答你的问题,但我过去曾使用过一个工具作为 Fortify 来对项目运行代码审查规则,它准确地指向未使用的导入、死代码、未使用的类等。它是一个付费软件,但我我相信会有一些免费的插件/软件可供使用。