我有一个大型的 Eclipse 项目,其中存在几个类,尽管它们不再在任何地方使用,但从未被标记为@Depreated。
我怎么才能轻易找到这些呢?
我也喜欢使用 UCDetector :
UCDetector (不必要的代码检测器)是一个开源 Eclipse 插件工具,用于查找不必要的(已死)公共 Java 代码。它还尝试使代码成为最终的、受保护的或私有的。
额外的好处: 它还可以找到类之间的循环依赖关系
(也是一个 其他工具的数量——包括 Findbug ——也知道如何做到这一点)
警告 : 希德提到 在评论中:
如果存在仅在运行时才知道的接口实现,UCDetector 将不能工作。 它错误地将实现类标记为未使用。
2017年最新消息: 静态程序分析在过去的8年里发生了很大的变化。 使用 用于 Eclipse 的 SonarLint,您可以使用最新的 SonarJava 4.6插件来分析代码。 它会 找到死代码。
ProGuard 可用于打印未使用类/方法的报告。不过,为它提供所有依赖的罐子是一件痛苦的事情。
这些选项列出了应用程序 mypackage.MyApplication 中未使用的类、字段和方法:
-injars in.jar -libraryjars <java.home>/lib/rt.jar -dontoptimize -dontobfuscate -dontpreverify -printusage -keep public class mypackage.MyApplication { public static void main(java.lang.String[]); }
只需使用启用了适当检查的分析 | 检查代码(声明冗余组下未使用的声明)。
使用 IntelliJ 11 CE,您现在可以“分析 | 按名称运行检查... | 未使用的声明”