Eclipse - 查看一个类的哪些方法在另一个类中使用?

时间:2011-06-30 06:24:42

标签: java eclipse

使用Eclipse,给出以下类:

class Dao {
    public void one() {}
    public void two() {}
    public void three() {}
}

class ServiceA {
    Dao dao;
    public void a() {
        dao.one();
        dao.two();
    }
    public void b() {
        dao.one();
    }
}

class ServiceB {
    Dao dao;
    public void z() {
        dao.two();
        dao.three();
    }
}

...是否可以查看Dao引用的所有ServiceA方法的列表?我正在查找一个显示ServiceA使用one()two()的视图(如果one()列出两次,请不要介意。)

我知道如何查看某个特定方法的来电者。我真的需要一个类中引用的所有方法的列表。想想遗留代码数量级更大:dao和具有数十(数百?)种方法的服务。我不想通过方法进行调用层次结构方法。

5 个答案:

答案 0 :(得分:6)

实际上您可以在Dao方法中单击鼠标右键,然后单击“打开调用层次结构Ctrl + Alt + H”,Eclipse将为您找到所有Dao方法调用。

答案 1 :(得分:4)

Konrad Garus 2011年6月30日7:37在评论中说:

  

是的,除此之外,我需要从另一方面来看。查看全部   从Service调用的方法,而不是Dao.conreteMethod()的所有调用。

- 我需要创建一个新答案,因为我将使用两张图片来说明我的观点。 (不能在评论中使用图像)

'Ctrl + Alt + H'调出调用层次结构,正如其他人在此处所提到的那样。

然后,您需要点击这些图标,具体取决于您的需求:

Show Callee Hierarchy

并且

Show Caller Hierarchy

修改

VonC的答案怎么样here(里面有锯齿状的截图图片?)

在这里,我使用CTRL-H来代码搜索对Dao.one()的调用。

结果:在搜索结果视图中,还有另一个小图标“按类型分组”。

code search result

答案 2 :(得分:1)

Ctrl+Shift+G执行搜索,显示正在使用您的方法或所选课程的所有位置。

此外,您可以暂时将所有public方法设置为private种可见性,并检查出现错误的位置。

答案 3 :(得分:1)

您可以使用代码覆盖率插件/工具。

例如:

  • 依赖性分析器 (http://www.dependency-analyzer.org/)
  • Codecover
  • UCDetector
  • FindBugs
  • PMD
  • CodePro Analytics(不含Google)

答案 4 :(得分:0)

如果右键单击某个方法并选择“打开调用层次结构”,则可以使用特定方法获取所有类的列表。