如何使用JDT构建调用图

时间:2015-07-08 13:58:05

标签: java eclipse eclipse-jdt

在eclipse中,有“Call Hierarchy”可以轻松找到调用图(或方法调用关系)。 我想找一些API来提取这种关系。但是我找不到任何现有的教程来帮助我。任何人都可以给我一些线索吗?主要是我想知道应该使用JDT中的哪个类以及输入应该是什么。

顺便说一下,目标是提取这个调用关系,所以其他一些方式也可能有所帮助。我尝试了SOOT,但我认为JDT更好,因为它有来电者和被叫者。

1 个答案:

答案 0 :(得分:1)

我想出了这些功能的JDT代码,这是一个很好的地方找到这些东西。

基本上,您可以从以下代码段开始:

    CallHierarchy callHierarchy = CallHierarchy.getDefault();
    IMember[] members = { method };
    MethodWrapper[] callers = callHierarchy.getCallerRoots(members);

其中method是JDT的IMethod类型。

使用生成的MethodWrappers,您可以获得有关它的所有信息。

重要的是要注意CallHierarchy类是内部的,所以它可以在Eclipse版本中中断,但我不知道它的公共API。