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(); } } 

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

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

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

康拉德加鲁斯2011年6月30日7:37在评论中说:

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

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

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

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

显示Callee层次结构

显示调用者层次结构

编辑

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

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

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

代码搜索结果

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

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

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

例如:

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

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