IntelliJ вызывает иерархию полей

Eclipse JDT имеет функцию "иерархии вызовов" - начните с поля/метода, и он рекурсивно находит все ссылки.

IntelliJ также реализует это, но работает только из методов. Для полей вы можете только «Найти использование», поэтому, если вы хотите копнуть глубже, вам придется выполнить дополнительный поиск.

Пробовал «Поток данных сюда», но это не то, что я ищу.

Я что-то пропустил? Есть ли лучший способ изучить использование полей в IntelliJ?


person Valentin Milea    schedule 12.12.2010    source источник
comment
Мне также не хватает этой удивительной особенности затмения. Не могу сказать, что мне чего-то не хватает в IntelliJ.   -  person xor_eq    schedule 01.12.2011
comment
IntelliJ также реализует это, но работает только из методов. ваш вопрос, если он неправ, он работает только для полей   -  person Jaime Hablutzel    schedule 10.05.2012
comment
Мне тоже не хватает этой функции. Кроме того, в eclipse вы можете расширяться с помощью конструкторов в представлении иерархии, что является очень мощной функцией. Очень скучаю по этому!   -  person sulai    schedule 12.11.2014


Ответы (4)


ИЗМЕНИТЬ

Описанная ниже проблема была решена, и IntelliJ IDEA 2019.3 будет иметь эту функцию.

ИЗМЕНИТЬ 2

Я скачал:

IntelliJ IDEA 2019.3 EAP (Community Edition)
Build #IC-193.3793.14, built on September 25, 2019

Но, похоже, эта проблема не была исправлена ​​правильно, иерархия вызовов для полей не приводит вас к фактическому использованию поля в методе, а к строке определения метода.

См.: https://youtrack.jetbrains.net/issue/IDEA-160274#focus=streamItem-27-3721096.0-0

Исходный ответ

IntelliJ не имеет этой функции, однако здесь есть запрос на функцию: https://youtrack.jetbrains.com/issue/IDEA-160274

Если вы хотите, чтобы эта функция была реализована, вы можете проголосовать там.

person ric-salmon    schedule 03.10.2017
comment
После того, как вы войдете в youtrack и нажмете на проблему, в правом нижнем углу появится ссылка для голосования. - person ric-salmon; 25.10.2017
comment
Это самая большая вещь, которую я пропустил в Eclipse так много лет назад, и это здорово, наконец, получить ее. - person karmakaze; 28.09.2019

Выберите интересующий вас метод, а затем используйте в верхнем меню «Навигация > Иерархия вызовов» или просто Ctrl+Alt+H.

Насколько я знаю, это не работает для полей, потому что, когда я выбираю поле, опция «Навигация> Иерархия вызовов» становится недоступной. Единственные похожие функции, которые я знаю для полей, это «Редактировать> Найти> Найти использование» (Alt + F7) и «Редактировать> Найти> Показать использование» (Ctrl + Alt + F7).

person machinery    schedule 16.01.2013
comment
Это не работает с полями, и это совершенно ясно в заданном вопросе. - person Toilal; 30.11.2014
comment
@Toilal отредактировал ответ, чтобы решить вашу проблему, пожалуйста, посмотрите. - person machinery; 02.12.2014

«Поток данных сюда» и «Поток данных отсюда» дают вам рекурсивное представление данных, поступающих в поля (или локальные переменные) и из них.

Я думаю, что эти две функции, на самом деле, то, что вам нужно. Если нет, можете ли вы перефразировать вопрос в терминах, менее специфичных для IDE? Другими словами: какую информацию вы хотите извлечь из своей кодовой базы?

person Pakka Pakka    schedule 26.02.2011
comment
Допустим, у меня есть поле участника, и я хочу знать весь код, который может его касаться. Я вызываю представление иерархии вызовов, которое изначально показывает методы, обращающиеся к нему. Затем я должен иметь возможность, не выходя из этого представления, углубляться в вызывающие объекты каждого метода. (Чтобы сделать это управляемым, IDE ищет методы доступа узла только тогда, когда он расширяется пользователем) - person Valentin Milea; 03.01.2012

Используйте функцию «Найти использование» (Alt+F7)

person IntelliJ user    schedule 13.01.2011
comment
Проблема в том, что Find Usages не является рекурсивным, как иерархия вызовов Eclipse. Это делает Find Usages гораздо менее полезным. - person David Leppik; 01.11.2011