我试图以json文件的形式创建未使用的Java方法的索引。
有几种不同的方法可以被引用。我已经检查了所有其他方法,并且有一个相对较小的可能未使用的java方法列表。
可以在其他java文件中使用方法的最后一种方式。它们将在java源代码的某个地方用基本的class.method(args,args2等)语法调用。
我的问题是,是否有一种简单的方法来检查我可能未使用的方法列表,看看它们是否在java代码中没有使用。如果这能在运行时完成,那将是理想的,但如果我能创建一个文件,然后在运行时读取它也会工作。
我试过使用预构建的软件,如UCDetector,但源代码是巨大的,运行UCDetector需要几个小时,往往甚至没有完成。它还检查所有的方法,看看它们是否被使用,这是浪费时间,因为我已经把它缩小到几个可能的方法来检查。
您应该使用您的IDE (eclipse、intelllij),或者一些静态代码分析工具,如findbugs、pmd、checkstyle。
看来你是在重新发明轮子。
一种选择可能是使用"覆盖率分析"工具来查看未使用的内容(https://en.m.wikipedia.org/wiki/Java_Code_Coverage_Tools)。如果您的单元测试具有良好的分支覆盖率,那么简单地运行带有覆盖率的测试将产生您想要的结果。如果您没有良好的测试覆盖率,您可能会使用用于覆盖率计算的代码来运行应用程序本身,但是与单元测试一样,结果的质量将取决于单元测试或手动测试执行的代码的数量。
您可能使用的覆盖工具的一些示例是:JaCoCo (http://www.eclemma.org/jacoco/)和Cobertura (http://cobertura.github.io/cobertura)。
或者,您可以自己编写代码,以便记录方法的使用情况,因为这可能比计算整行覆盖率更轻量级。然而,这确实是在重新发明轮子。
这个问题有类似的解决方案:如何在java项目中找到未使用/死代码