Как показать всех родителей и подклассов класса в IntelliJ IDEA?


151

Когда я редактирую класс Java в Eclipse, когда мой курсор находится над переменной класса, я могу сделать Ctrl+, Tчтобы иметь всплывающее окно, которое показывает всех его родителей и подклассов. Что такое эквивалент в IntelliJ?

Пример:

Use|r user = new User();

Труба - мой курсор.

Ответы:


217

Навигация | Тип Hierarchy Ctrl + Hпокажет похожую информацию, однако в Panel. Вы можете перемещать и откреплять панель, чтобы она появлялась в фиксированном положении дисплея только при использовании сочетания клавиш.


1
Я довольно новичок в IntelliJ и обнаружил, что намного лучше иметь ярлык «Скрыть активное окно инструментов», сопоставленный с <Escape> (вместо ярлыка «Escape»), который по умолчанию сопоставлен с <Shift + Escape> , До сих пор это было более естественным для меня при закрытии «плавающих окон» (включая иерархию типов).
Эйал Рот

2
Еще одна вещь - это по-прежнему не так, как в быстрой иерархии типов Eclipse: в Eclipse, когда вы наводите курсор мыши на класс в иерархии, нажатие <Enter> откроет исходный файл с классом; в IntelliJ вы должны использовать ярлык «перейти к источнику». Кроме того, нажатие на редактор не приведет к тому, что окно исчезнет, ​​в отличие от окна «Показать реализации» (например), так что это не просто плавающее окно.
Эйал Рот


22

Не пользователь IntelliJ IDEA, но этот пост в блоге, кажется, указывает, что в версии 8.1.1 и более поздних Ctrl+ Alt+ Uбудет отображаться «Быстрая иерархия классов».


Это довольно хорошо, но есть ли более легкий? Этот строит диаграмму UML? Просто любопытно, есть ли быстрое зависание, которое я могу просмотреть его родителей и перейти к ним.
Glide

2
Кажется, это не эквивалент. Например, для интерфейса org.slf4j.Logger он показывает только Logger, который бесполезен. Ctrl-H кажется лучше, так как показывает дерево реализующих классов (дерево, к сожалению, не развернуто). Однако Eclipse показывает также все расширяющие интерфейсы и его реализующие классы. Также ниже упомянутый CTRL-ALT-B не показывает дерево или реализации интерфейсов. Я только начинаю с Idea и ожидал, что такая часто используемая функция заменит версию Eclipse или будет, по крайней мере, одинаково хороша ...
petrsyn

1
13.1 Ultimate, кажется, вернул его, и ярлык работает.
Джейсон Д

UML иерархия классов Ctrl + Alt + U работает только в Ultimate Edition
Srujan Kumar Gulla

Ctrl + Alt + U даже не показывает все черты предка. Только прямые родители. Жалкий.
увлеченный

16

Также попробуйте CTRL+ SHIFT+ Aв случае каких - либо сомнений. Сокращение для краткой информации.


16

Intellij - в отличие от Eclipse - различает иерархии типов и классы реализации . Я до сих пор не знаю, хорошо это или нет (просто переключился с Eclipse на Intellij)

На Mac Intellij 14

  • Ctrl+ Hвыведет иерархию типов, показывающую подтипы и супертипы
  • Cmd+ Alt+ Bпокажет вам все реализующие классы и подклассы интересующего вас интерфейса / класса

CTRL + ALT + B не только имеет смысл с интерфейсами - он также показывает все подклассы класса, поэтому легко увидеть, какие типы наследуют от класса, в котором вы заинтересованы.
nachteil

@nachteil спасибо. не знал этого Я изменил описание cmd + alt + b
Стефан Хаберл

Да - Ctrl + H - правильный ответ. Ctrl + Alt + B - это не точно Ctrl + T затмения
prash


6

Для пользователей Mac, которые приходят сюда, это ярлык для IntelliJ 14.1.4:

+ Hпо умолчанию.



3

В IntelliJ 13 это Навигация> Реализации или CMD+ ALT+ Bпо умолчанию. Конечно, этот ярлык может быть переопределен в настройках Keymap.


2

Я не знаю о предыдущих версиях, но в IntelliJ версии 13 вы можете перейти в настройки своего Keymap, выполнить поиск «Реализации» и связать это с Ctrl+ T. Это будет работать очень похоже на эквивалент Eclipse.


1

В то время как Eclipse включает иерархию типов и структуру классов (методы, поля и т. Д.) В одном представлении, IntelliJ разделяет их: в дополнение к представлению CTRL+ H(или ALT+ 8) «Иерархия типов» , другое соответствующее окно IntelliJ называется «Структура». " и может быть вызвано через ALT+ 7(окно инструментов структуры) или CTRL+ F12(всплывающее окно структуры).

(Не прямой ответ на точный опубликованный вопрос, но можно ожидать, что сюда придут другие люди из истории Eclipse, которые, как я и сделал, погуглили на «иерархию типов intellij».)


1

Ctrl+U - иди в базовый класс

Ctrl+Alt+B- добрался до реализации. Введите части имени класса, чтобы сузить список

Ctrl+H - открыть окно инструмента иерархии типов

Ctrl+Alt+U - иерархия наследования классов / интерфейсов


1

В Eclipse нажатие Ctrl+ Tна тип отображает его подтипы, а повторное нажатие Ctrl+ Tотображает супертипы. И так для ... это переключение.
Это действительно полезно, а также очень прямо.

К сожалению, с IntelliJ переключение между супертипами и подтипами не имеет ярлыка по умолчанию. Поэтому вам придется нажимать на значки окон иерархии.
Если вы, как и я, предпочитаете сочетания клавиш для опции «переместить курсор и щелкнуть мышью», я рекомендую вам установить привязку для этих двух операций. Например Ctrl+ Down для подтипов и Ctrl+ Up для супертипов.

Где вы можете изменить привязку («Bas» означает «Вниз», а «Haut» означает «Вверх»): выжидать

Обратите внимание, что эти привязки являются контекстными для контекста «Other» (Eclipse имеет достаточно похожую концепцию). 1) Таким образом, ввод Ctrl+ Tдля ArrayListтипа производит:

Иерархия по умолчанию

2) Enter Ctrl+ Downфокусируется на подтипах:

фокус подтипов

3) И Enter Ctrl+ Upориентируется на супертипы:

фокус супертипов

Таким образом, я считаю, что это лучше, чем поведение по умолчанию, но, честно говоря, даже при добавлении ярлыка функция IntelliJ не так хороша, как Eclipse, ярлык Ctrl+ Tтакже работает с методами ...


0

Существует иерархическое представление, как в Eclipse, посмотрите меню View / Tool Windows / Hierarchy или нажмите Alt-8 или F4.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.