Java 更智能的Eclipse“;打开调用层次结构“;?

Java 更智能的Eclipse“;打开调用层次结构“;?,java,eclipse,call-hierarchy,Java,Eclipse,Call Hierarchy,如果我在Eclipse中有一个Java项目,我可以右键单击方法名和“打开调用层次结构”。我是否可以让Eclipse以更智能的方式使用“开放调用层次结构”,以便只显示a对x()的调用,而不显示B对x()的调用?Eclipse应该已经这样做了。如果要测试它,请转到A接口,选择x()方法并对其运行“Open Call Hierarchy”。对接口B中的x()方法执行相同的操作。您应该获得不同的代码位置,除非您有一个类同时实现了这两种方法,而您永远不应该这样做。这样做不会破坏任何编译或执行,只会双重声明

如果我在Eclipse中有一个Java项目,我可以右键单击方法名和“打开调用层次结构”。我是否可以让Eclipse以更智能的方式使用“开放调用层次结构”,以便只显示a对x()的调用,而不显示B对x()的调用?

Eclipse应该已经这样做了。如果要测试它,请转到A接口,选择x()方法并对其运行“Open Call Hierarchy”。对接口B中的x()方法执行相同的操作。您应该获得不同的代码位置,除非您有一个类同时实现了这两种方法,而您永远不应该这样做。这样做不会破坏任何编译或执行,只会双重声明相同的方法签名。

我用一个经常被重写的方法toString()尝试过这一点。当我右键单击它并选择“OpenCallHierarchy”时,Eclipse会愉快地搜索我的整个工作区,并返回对该方法签名的所有引用

我通常依赖Eclipse来实现相反的目的:我选择一个方法调用并按F3键打开声明。但是我不认为Eclipse能够朝着您想要的方向发展,从声明到调用引用

这可能有助于从搜索结果中删除“潜在匹配项”。试试这个:

首选项->常规->搜索


然后勾选“忽略潜在匹配项”。

现在我开始迷惑自己了。当我实际尝试虚拟示例时,它的行为正如您所解释的,但我的具有更复杂层次结构的真实示例似乎受到我所描述的现象的影响。