如何在Eclipse中使用Java查看公共方法被调用的位置?

46

我正在使用Eclipse进行Java项目开发。有时候在重构代码时,我想查看哪些其他类中调用了一个公共方法。

现在我使用的是一种比较原始的方法。我可以将该方法注释掉,并查看Eclipse中哪些类出现了错误。在Eclipse中是否有更好的方法可以实现这一点?例如,通过选择方法签名并按快捷键运行命令?


11
Ctrl+Shift+G 显示了方法被调用的位置,而 Ctrl+Alt+H 则显示工作区中该方法的调用。 - Prince
1
@Prince 啊,这正是我苦苦寻找已久的东西。 - snowe
6个回答

71

点击方法名称,然后按下Ctrl+Alt+H,以启用呼叫层次结构视图。


1
实际上已经弄清楚了:它在导航菜单下的“调用层次结构”中,或者快捷键是CTRL+option+H。 - Adam Parkin
1
@Prince:Ctrl+Alt+H可以做两件事情 - 尽管我通常使用它来显示对该方法的调用,而不是从该方法调用。 - Jon Skeet
@Prince:Ctrl+Alt+H 只会显示当前打开文件中的函数调用,我想知道在整个项目(比如一个目录)中有哪些函数调用了该函数。虽然 cscope 可以做到这一点,但是在 Eclipse 中有没有其他方法呢?(我正在使用 C/C++(CDT)进行我的项目。) - DarthSpeedious
1
@DarthSpeedious:如果你在使用C/C++,为什么会期望一个 Java 问题的答案能够奏效呢?CDT 和 JDT 是非常不同的 - Ctrl-Alt-H 可以很好地显示所有 Java 中的调用... - Jon Skeet
谢谢,Ctrl+Alt+H在Eclipse中很好用,我已经测试过Java了。 - one
显示剩余2条评论

12
您也可以使用 Ctrl+Shift+G 键来查找工作区中的引用。

9

搜索 > 引用 > 工作区

这将在搜索视图中建立一个结果树,列出方法的所有引用。快捷键是Shift+Ctrl+G


0
另一件你可以做的事情是让它抛出一个异常(public void test() throws Exception{}),这样Eclipse会在调用该方法的每个地方放置错误(只要不在try/catch块中或者它也抛出异常),这种方式只适用于想要搜索项目中的类的情况。

1
这是一种可怕的方式来做一些已经内置于Eclipse中的事情。 - takendarkk

0

Ctrl + Shift + G

这将显示调用的位置以及层次结构。

enter image description here


0

Eclipse 4.23(2022年2月,12年后)在此视图中增加了以下内容:

显示被调用者的实现

当查看被调用者时,调用层次视图现在可以显示实现方法作为潜在的被调用者方法。

被调用者调用层次 -- https://www.eclipse.org/eclipse/news/4.23/images/callee_on_implementations.png

此行为可以通过以下首选项进行控制

调用层次首选项 -- https://www.eclipse.org/eclipse/news/4.23/images/callee_preference.png


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接