Подтвердить что ты не робот

В чем разница между иерархией вызовов и поиском ссылок eclipse?

Я запутался при использовании этих двух команд в eclipse Ctrl + Shift + G и Ctrl + Alt + H оба возвращают одинаковые результаты.

Сценарий

Хотите найти, где был вызван метод " findUsage".

Пример класса

enter image description here

Вывод иерархии вызовов (Ctrl + Alt + H).

enter image description here

Найти ссылки (Ctrl + Shift + G) output

enter image description here

Оба показывают одинаковые результаты. Может ли кто-нибудь знать, в чем разница между этими двумя командами?

4b9b3361

Ответ 1

"Найти ссылки" показывает вам всех прямых абонентов выбранного метода. "Иерархия звонков" в противоположность показывает также вызывающих абонентов этих прямых абонентов и вызывающих абонентов... и т.д.

Таким образом, вывод только идентичен, если у прямых вызывающих абонентов выбранного вами метода нет всех вызывающих абонентов. Просто попробуйте обе команды на какой-то более большой базе кода, и вы сразу увидите разницу, как на этом снимке экрана:

Call hierarchy

Если вы задаетесь вопросом, почему есть две такие функции, если "Найти ссылки" - это просто подмножество "Иерархия вызовов": поиск ссылок работает очень быстро, поэтому вы можете использовать его все время, не ожидая результатов. С другой стороны, иерархия вызовов занимает больше времени вычисления и поэтому может прерывать ваш рабочий процесс кодирования.

Ответ 2

  • Ctrl + Shift + G: Ссылка в рабочей области. Он показывает только ссылки выбранного класса или метода или переменной в исходном коде.
  • Ctrl + Alt + H: вызывать H иерархию. Он показывает всю иерархию до корневого класса.