我想找到一个抽象方法的实现位置,在哪个类中? Eclipse中是否有像调用层次结构 / 打开声明之类的链接或类似的内容,以显示实现方法的位置?
答案 0 :(得分:25)
快速方法:
按住 Ctrl ,将鼠标悬停在方法名称上,然后选择“打开实施”。
单击方法名称并按 Ctrl T 。
右键单击方法名称→“快速类型层次结构”。
要获得更多导航功能,请参阅the post by ADTC。
答案 1 :(得分:12)
这里有很棒的答案!我发现了一个额外的技巧,可以快速实现从实现到实现。
很奇怪Eclipse使用临时弹出窗口来显示"类型实现或定义' Class.method()'" 永久性观点,可以固定在两侧。
此弹出窗口的优点是,当您单击实现类型时,您将直接带到方法实现。这个弹出窗口的缺点是它会在你这么做时关闭,并且没有办法永久地固定它。
类型层次结构显示了相同的实现类型列表(因为它们是抽象类的子类)。由于它是一个视图,它可以永久固定在侧面。 但是,如果您在此处双击类型名称,则会转到该类型的声明行。然后,您必须自己找到抽象方法的实现。
除此之外,您不必使用以下技巧:
现在,您可以通过单击或双击主列表中列出的方法在实现之间快速导航。
1 您也可以单击方法名称并按F4。
2 如果未列出,请单击其中一个显示类型层次结构 (2)或显示子类型列表上方的层次结构 (3)按钮。
3 如果没有辅助列表,请单击查看菜单 (4),选择布局< / em>&gt; [仅限层次结构]以外的任何选项。
4 如果没有选中,只需点击它就可以选择它。
答案 2 :(得分:4)
如果Ctrl + mouse hover
超过方法,您可以看到一个弹出窗口,您可以从一系列选项中进行选择,其中一个是“ Open Implementation ”。如果单击,将显示所有实现的列表。
它也可以用于查看声明和/或超级实现,因此非常有用。
如果您将光标放在方法上,只需按Ctrl + T
即可获得相同的效果。
如果要在“类型层次结构”视图中显示结果,请使用F4
键。
答案 3 :(得分:4)
您可以使用TypeHierarchy视图。以下是Spring框架抽象类FrameworkServlet的类型层次结构视图的示例:
在左侧窗格中,您会看到类继承树。左窗格中类名旁边的“A”图标表示FrameworkServlet是一个抽象类。在右侧窗格中,突出显示的方法doService(request,response)也有“A”图标,表示这是一个抽象方法。
现在,如果我们点击DispatcherServlet类,这是一个具体的(非抽象)类,你会看到:
在这种情况下,DispatcherServlet的doService方法没有'A'图标,而是具有up三角形,表示它覆盖了超类方法。