繁体   English   中英

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

[英]How to find where an abstract method is implemented in Eclipse?

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

快速方法:

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

  • 单击方法名称,然后按Ctrl T.

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

有关更多导航功能,请参阅ADTC的帖子

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

Eclipse使用临时弹出窗口来显示“实现或定义'Class.method()'的类型”而不是可以固定到侧面的永久视图,这是相当奇怪的。

此弹出窗口的优点是,当您单击实现类型时,您将直接进入方法实现。 这个弹出窗口的缺点是它会在你弹出时立即关闭,并且无法永久固定它。

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

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

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

  2. 单击辅助列表上方的“ 锁定视图”和“在层次结构中显示成员”按钮(1)
    • 所选方法及其实现将列在每个子类型下的主列表以及父类型中。

现在,您可以通过单击或双击主列表中列出的方法在实现之间快速导航。

截图显示了所提到的各个部

1您也可以单击方法名称并按F4。
2如果未列出,请单击列表上方的显示类型层次结构 (2)显示子类型层次结构 (3)按钮之一。
3如果没有辅助列表,请单击“ 查看”菜单 (4) ,选择“ 布局” > [除“ 仅层次结构”以外的任何选项]。
4如果未选中,只需单击它即可将其选中。

如果您将Ctrl + mouse hover在某个方法上,则可以看到一个弹出窗口,您可以从中选择一组选项,其中一个是“ Open Implementation ”。 如果单击,将显示所有实现的列表。

它也可以用于查看声明和/或超级实现,因此它非常有用。

如果将光标放在方法上,只需按Ctrl + T获得相同的效果。

如果要在“ 类型层次结构 ”视图中显示结果,请使用F4键。

您可以使用TypeHierarchy视图。 这是Spring框架抽象类FrameworkServlet的类型层次结构视图的示例:

在此输入图像描述

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

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

在此输入图像描述

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM