我正在尝试以json文件的形式创建未使用的Java方法的索引。
可以通过几种不同的方式引用这些方法。我已经检查了所有其他方法,并且有一个相对较小的可能未使用的java方法列表。
可以使用方法的最终方法是在其他java文件中。它们将在java源代码中的某处使用基本的class.method(args,args2等等)语法调用。
我的问题是,是否有一种简单的方法可以检查我的可能未使用的方法列表,看看它们是否在java代码中没有使用。如果这可以在运行时完成,那将是理想的,但如果我可以创建一个我可以在运行时读入的文件,它也会工作。
我尝试过使用像UCDetector这样的预制软件,但是源代码非常庞大,运行UCDetector需要数小时才能完成。它还检查所有方法以查看它们是否被使用,这是浪费时间,因为我已将其缩小到少数可能的方法来检查。
答案 0 :(得分:2)
您应该使用IDE(eclipse,intelliJ)或一些静态代码分析工具,例如findbugs,pmd,checkstyle。
好像你正试图重新发明轮子。
答案 1 :(得分:0)
一种选择可能是使用"覆盖率分析"查看未使用内容的工具(https://en.m.wikipedia.org/wiki/Java_Code_Coverage_Tools)。如果您的单元测试具有良好的分支覆盖率,那么只需运行覆盖范围的测试就可以得到您正在寻找的结果。如果您没有良好的测试覆盖率,您可以运行应用程序本身,其中包含用于覆盖率计算的代码,但与单元测试一样 - 结果的质量将取决于您的单元tetst或手动执行的代码量测试
您可能使用的覆盖工具的一些示例是:JaCoCo(http://www.eclemma.org/jacoco/)和Cobertura(http://cobertura.github.io/cobertura)。
或者,您可以自己检测代码以记录方法用法,因为它可能比计算全线覆盖率更轻量级。然而,这确实重新发明了轮子。
此SO问题有类似的解决方案:How to find unused/dead code in java projects