在eclipse中,有“Call Hierarchy”可以轻松找到调用图(或方法调用关系)。 我想找一些API来提取这种关系。但是我找不到任何现有的教程来帮助我。任何人都可以给我一些线索吗?主要是我想知道应该使用JDT中的哪个类以及输入应该是什么。
顺便说一下,目标是提取这个调用关系,所以其他一些方式也可能有所帮助。我尝试了SOOT,但我认为JDT更好,因为它有来电者和被叫者。
答案 0 :(得分:1)
我想出了这些功能的JDT代码,这是一个很好的地方找到这些东西。
基本上,您可以从以下代码段开始:
CallHierarchy callHierarchy = CallHierarchy.getDefault();
IMember[] members = { method };
MethodWrapper[] callers = callHierarchy.getCallerRoots(members);
其中method
是JDT的IMethod类型。
使用生成的MethodWrappers,您可以获得有关它的所有信息。
重要的是要注意CallHierarchy类是内部的,所以它可以在Eclipse版本中中断,但我不知道它的公共API。