【发布时间】:2011-01-10 18:18:53
【问题描述】:
如果我在 Eclipse 中有一个 Java 项目,我可以右键单击方法名称并“打开调用层次结构”。假设我有两个接口 A 和 B,它们都指定了一个方法 x()。我是否可以让 Eclipse 以更智能的方式使用“Open Call Hierarchy”,以便只显示来自 A 的 x() 调用而不显示来自 B 的调用?
【问题讨论】:
标签: java eclipse call-hierarchy
如果我在 Eclipse 中有一个 Java 项目,我可以右键单击方法名称并“打开调用层次结构”。假设我有两个接口 A 和 B,它们都指定了一个方法 x()。我是否可以让 Eclipse 以更智能的方式使用“Open Call Hierarchy”,以便只显示来自 A 的 x() 调用而不显示来自 B 的调用?
【问题讨论】:
标签: java eclipse call-hierarchy
Eclipse 应该已经这样做了。如果你想测试它,进入你的A界面,选择x()方法然后运行'Open Call Hierarchy'。对接口 B 中的 x() 方法执行相同的操作。你应该得到不同的代码位置,除非你有一个实现两者的类,你不应该这样做。这样做不会破坏任何编译或执行,您只会双重声明相同的方法签名。
【讨论】:
我已经用一个经常被覆盖的方法 toString() 尝试了这个。当我右键单击它并选择“Open Call Hierarchy”时,Eclipse 会愉快地搜索我的整个工作区并返回对该方法签名的所有引用。
我经常依靠 Eclipse 走相反的路:我选择一个方法调用,然后按 F3 键打开声明。但我不认为 Eclipse 能够按照您想要的方向发展,从声明到调用引用。
【讨论】:
从搜索结果中删除“潜在匹配”可能会有所帮助。试试这个:
Preferences -> General -> Search
并勾选“忽略潜在匹配”。
【讨论】: