如何在 IntelliJ IDEA 中显示一个类的所有父类和子类?

Posted

技术标签:

【中文标题】如何在 IntelliJ IDEA 中显示一个类的所有父类和子类?【英文标题】:How to show all parents and subclasses of a class in IntelliJ IDEA? 【发布时间】:2011-04-28 19:03:11 【问题描述】:

当我在 Eclipse 中编辑 Java 类时,当我的光标位于类变量上时,我可以执行 Ctrl+T 以弹出一个显示所有它的父类和子类。 IntelliJ 中的等价物是什么?

例子:

Use|r user = new User();

管道是我的光标。

【问题讨论】:

【参考方案1】:

导航 |键入 Hierarchy Ctrl+H 将显示类似的信息,但在面板中。您可以浮动取消固定面板,使其仅在您使用键盘快捷键时出现在固定显示位置。

【讨论】:

我是 IntelliJ 的新手,我发现将“隐藏活动工具窗口”快捷方式映射到 (而不是“Escape”快捷方式)要好得多,默认情况下映射到 。到目前为止,关闭“浮动窗口”(包括类型层次结构)对我来说感觉更自然。 还有一件事 - 这仍然与 Eclipse 的快速类型层次结构不同:在 Eclipse 中,当您将鼠标悬停在层次结构中的一个类上时,按 将打开带有班级;在 IntelliJ 中,您必须使用“跳转到源”快捷方式。此外,与“显示实现”窗口(例如)不同,单击编辑器不会使窗口消失,因此这不是一个纯浮动窗口。 是否可以只显示直系子女?在python中,所有的后代都会显示出来,这在大多数情况下是无用的。 另外,它没有给出子类覆盖的方法列表和它们拥有的其他方法。有设置可以启用吗??【参考方案2】:

就行为而言,在 IntelliJ IDEA 中相当于 Eclipse Ctrl+TCtrl+Alt+ B

【讨论】:

在 macOS 上这是 Option + Cmd + B 是否可以只显示直系子女?在python中,所有的后代都会显示出来,这在大多数情况下是无用的。 请发布命令的名称,因为映射架构可能会有所不同,并且可能会在版本之间发生变化。这个给定的组合将直接进入唯一的 impl。在 xwin 绑定架构上,这不是我想要的 b/c 我只想查看信息但不导航。【参考方案3】:

不是 IntelliJ IDEA 用户,但this blog post 似乎表明在 8.1.1 及更高版本中 Ctrl+Alt+U将显示“快速类层次结构”。

【讨论】:

不错,但是有没有更轻量级的呢?这个建立一个UML图?只是好奇是否有快速悬停,我可以查看它的父母并找到他们。 似乎这不是一个等价物。例如对于接口 org.slf4j.Logger,它只显示 Logger,这是无用的。 Ctrl-H 似乎更好,因为它显示了实现类的树(不幸的是,树没有展开)。然而,Eclipse 也显示了所有扩展接口及其实现类。下面还提到 CTRL-ALT-B 不显示树或实现接口。我刚开始使用 Idea,并期待这种常用的功能将取代 Eclipse 版本,或者至少同样好...... 13.1 Ultimate 似乎已恢复并且快捷方式有效。 UML 类层次 Ctrl + Alt + U 仅适用于终极版 Ctrl + Alt + U 甚至不显示所有祖先特征。只有直系父母。可悲。【参考方案4】:

Intellij 确实——与 Eclipse 不同——区分类型层次实现类。我仍然不确定这是否是一件好事(我自己刚刚从 Eclipse 切换到 Intellij)

在 Mac Intellij 14 上

Ctrl + H 将显示类型层次结构,显示子类型和超类型 Cmd + Alt + B 将显示您感兴趣的接口/类的所有实现类和子类

【讨论】:

CTRL+ALT+B 不仅对接口有意义 - 它还显示一个类的所有子类,因此很容易看出哪些类型继承自您感兴趣的类。 @nachteil 谢谢。不知道。我更改了 cmd + alt + b 的描述 是 - Ctrl+H 是正确答案 Ctrl+Alt+B 不完全是 Ctrl+T 的 Eclipse【参考方案5】:

如果有任何疑问,也可以尝试 CTRL+SHIFT+A。捷径信息的捷径。

【讨论】:

【参考方案6】:

在 IntelliJ IDEA 12 中,它是 Navigate > Type Hierarchy(默认为 Ctrl+H)。

【讨论】:

【参考方案7】:

对于来到这里的 Mac 用户,这是 IntelliJ 14.1.4 的快捷方式:

+H默认。

【讨论】:

【参考方案8】:

对于 Mac 用户,快捷方式是

^(控制)+ h

【讨论】:

【参考方案9】:

在 IntelliJ 13 中,默认为 Navigate > ImplementationsCMD + ALT + B。当然,可以在您的 Keymap 首选项中覆盖此快捷方式。

【讨论】:

【参考方案10】:

在 Eclipse 中,在类型上按 Ctrl+T 会显示其子类型,然后再次按 Ctrl+T显示如此超类型。所以……这是一个切换开关。 这真的很有帮助,也很直接。

不幸的是,在 IntelliJ 中,超类型和子类型之间的切换没有任何默认快捷方式。因此,您必须单击层次结构窗口的图标。 如果您像我一样喜欢“移动光标并单击鼠标”选项的键盘快捷键,我鼓励您为这两个操作设置绑定。例如,Ctrl+Down 用于子类型,Ctrl+Up 用于超类型。

您可以在哪里更改绑定(“Bas”表示“向下”,“Haut”表示“向上”):

请注意,这些绑定与 “Other” 上下文相关(Eclipse 确实有一个足够相似的概念)。 1)这样,在ArrayList类型上输入Ctrl+T会产生:

2) Enter Ctrl+Down关注子类型:

3) 和 Enter Ctrl+Up 关注超类型:

这样,我发现它比默认行为更好,但老实说,即使添加了快捷方式,IntelliJ 功能也不如 Ctrl+T 快捷方式也适用于方法...

【讨论】:

【参考方案11】:

我不知道以前的版本,但在 IntelliJ 版本 13 中,您可以进入您的 Keymap 首选项,搜索“Implementations”,并将其绑定到 Ctrl+T kbd>。它的工作方式与 Eclipse 相当。

【讨论】:

【参考方案12】:

虽然 Eclipse 在单个视图中包含类型层次结构和类结构(方法、字段等),但 IntelliJ 将它们拆分:除了 CTRL+H (或ALT+8)"Type Hierarchy"查看,另一个相关的IntelliJ窗口称为"Structure",可以通过ALT+7(结构工具窗口)或 CTRL+F12(结构弹出窗口)。

(不是对发布的确切问题的直接回答,但希望其他具有 Eclipse 背景的人可能会像我一样在谷歌上搜索“intellij 类型层次结构”。)

【讨论】:

【参考方案13】:

Ctrl+U - 转到基类

Ctrl+Alt+B - 开始执行。键入部分类名以缩小列表范围

Ctrl+H - 打开类型层次工具窗口

Ctrl+Alt+U - 查看类/接口继承层次

【讨论】:

【参考方案14】:

另一种选择:

Windows 用户:

Ctrl + Alt + Left mouse click 类型、方法等

【讨论】:

在 MacOS 上,command+option+Left mouse click 为我解决了问题。谢谢!【参考方案15】:

在 Eclipse 中有一个层次结构视图,查看菜单 View / Tool Windows / Hierarchy 或按 Alt-8 或 F4。

【讨论】:

以上是关于如何在 IntelliJ IDEA 中显示一个类的所有父类和子类?的主要内容,如果未能解决你的问题,请参考以下文章

如何在intellij idea中启用从源到外部库的滚动?

IntelliJ IDEA 如何显示工具栏

IntelliJ IDEA 左侧显示/展开类中的方法

IntelliJ IDEA 使用技巧—查看类的继承关系图

intellij idea中怎么覆盖tostring(),hashcode(),equals()?

Intellij idea 无法识别 python 3 中本地类的导入 [重复]