如何在Eclipse中查找抽象方法的实现位置?

时间:2013-09-20 11:56:02

标签: java eclipse hierarchy abstract

我想找到一个抽象方法的实现位置,在哪个类中? Eclipse中是否有像调用层次结构 / 打开声明之类的链接或类似的内容,以显示实现方法的位置?

4 个答案:

答案 0 :(得分:25)

快速方法:

  • 按住 Ctrl ,将鼠标悬停在方法名称上,然后选择“打开实施”。

  • 单击方法名称并按 Ctrl T

  • 右键单击方法名称→“快速类型层次结构”。

要获得更多导航功能,请参阅the post by ADTC

答案 1 :(得分:12)

这里有很棒的答案!我发现了一个额外的技巧,可以快速实现从实现到实现。

很奇怪Eclipse使用临时弹出窗口来显示"类型实现或定义' Class.method()'" 永久性观点,可以固定在两侧。

此弹出窗口的优点是,当您单击实现类型时,您将直接带到方法实现。这个弹出窗口的缺点是它会在你这么做时关闭,并且没有办法永久地固定它。

类型层次结构显示了相同的实现类型列表(因为它们是抽象类的子类)。由于它是一个视图,它可以永久固定在侧面。 但是,如果您在此处双击类型名称,则会转到该类型的声明行。然后,您必须自己找到抽象方法的实现。

除此之外,您不必使用以下技巧:

  1. 右键单击抽象方法,然后单击打开类型层次结构 1 类型层次结构视图中,您将注意到以下内容:
    • 抽象类类型的所有子类型都列在主列表中(P) 2
    • 抽象类的所有成员都列在辅助列表中(S) 3
    • 在辅助列表中选择右键单击的抽象方法。 4

  2. 点击辅助列表上方的锁定视图和在层次结构中显示成员按钮(1)
    • 所选方法及其实现将列在每个子类型下的主列表中以及父类型中。
  3. 现在,您可以通过单击或双击主列表中列出的方法在实现之间快速导航。

    Screenshot indicating various parts mentioned

    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的类型层次结构视图的示例:

enter image description here

在左侧窗格中,您会看到类继承树。左窗格中类名旁边的“A”图标表示FrameworkServlet是一个抽象类。在右侧窗格中,突出显示的方法doService(request,response)也有“A”图标,表示这是一个抽象方法。

现在,如果我们点击DispatcherServlet类,这是一个具体的(非抽象)类,你会看到:

enter image description here

在这种情况下,DispatcherServlet的doService方法没有'A'图标,而是具有up三角形,表示它覆盖了超类方法。