是否有任何类来诊断java类中的调用方法?

zar*_*ari 2 java

  1. 我需要使用它的源代码诊断类中的所有调用方法(在类中声明或不在语句中声明).将类源代码作为输入提供给方法的方法,并将类作为输出获取调用的方法.实际上我需要一个与java词法分析器相同的类/方法.有没有方法来诊断所有被调用的方法?

  2. 当然我试过使用Runtime.traceMethodCalls(); 解决问题,但没有输出.我已经读过我需要用java -g运行java调试但不幸的是当我尝试运行java -g时会出错.那我该怎么办?有什么办法吗?

Joa*_*son 5

1)在一般情况下,没有.反射将始终允许代码进行方法调用,而无法在不实际运行代码的情况下进行分析.

2)跟踪方法调用也不会给你完整的图片,因为一个方法在任何方式都没有保证(甚至可能)每次调用时都可以进行所有调用.

你最好的选择是某种"尽力而为"的代码分析.您可能想尝试使用编译器的帮助.例如,编译代码并分析生成的所有发出的外部符号的类文件.它不能保证能够接听每一个电话(见#1),但在大多数情况下它会让你接近.