我正在使用ASTParser来解析项目中的java源代码。我设法得到我的java项目的不同类中的所有方法的名称和返回类型。我现在想知道在运行java项目时是否可以调用方法的顺序。
实际上我还没有读过这个类的所有文档,这有点复杂。你知道它是否处理访问主程序中方法的顺序。如果是这样的话,你可以给我一个简单的例子,或者给我一些我应该做的指导。 提前致谢
答案 0 :(得分:0)
这实际上是一个非常难以解决的问题。
当您获得程序的AST时,您将获得有关程序结构的静态信息,而不是有关程序实际执行的动态信息。事实上,“给定这个程序的源代码,它会做出什么样的方法调用序列?”的一般问题。是不可判断的,这意味着没有算法,无论多么聪明,总能正确得到这个问题的答案。
如果您仍需要此信息,则可以选择一些选项。首先,您可以尝试近似一系列方法调用,最后得到的答案会给您一些接近真实答案的答案但不能正确涵盖所有案例。其次,您可以尝试运行程序并通过编写某种JVM插件来监视调用哪些函数,可能是通过JVMTI。