ChatGPT解决这个技术问题 Extra ChatGPT

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

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

例子:

Use|r user = new User();

管道是我的光标。


g
guo

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


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

就行为而言,IntelliJ IDEA 中 Eclipse Ctrl+T 的等价物是 Ctrl+Alt+B


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

不是 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 仅适用于 Ultimate Edition
Ctrl + Alt + U 甚至不显示所有祖先特征。只有直系父母。可怜的。
S
Stefan Haberl

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
v
vahid abdi

如有任何疑问,请尝试 CTRL+SHIFT+A。捷径信息的捷径。


f
falmp

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


m
mkobit

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

⌃+H 默认。


r
redhot

对于 Mac 用户,快捷方式是

^(控制)+ h


C
Cody A. Ray

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


d
davidxxx

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

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

https://i.stack.imgur.com/iO59l.png

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

https://i.stack.imgur.com/7NSrW.png

2) Enter Ctrl+Down 专注于子类型:

https://i.stack.imgur.com/GxubU.png

3) Enter Ctrl+Up 专注于超类型:

https://i.stack.imgur.com/GxubU.png

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


r
redhot

我不知道以前的版本,但在 IntelliJ 版本 13 中,您可以进入您的 Keymap 首选项,搜索“实现”,然后将其绑定到 Ctrl+T。它的工作方式与 Eclipse 等价物非常相似。


S
Steve Chambers

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

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


K
Konstantin Spirin

Ctrl+U - 转到基类

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

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

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


T
Torino

执行此操作的另一种选择:

对于 Windows 用户:

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

https://i.stack.imgur.com/SD7XD.png


在 MacOS 上,command+option+Left mouse click 对我有用。谢谢!
h
herberlin

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