Как получить вызывающую (-и) метод (-ы) без запуска этой системы (написано на JAVA) - PullRequest
9 голосов
/ 18 января 2011

В Java, как я могу получить вызывающую (-и) метод (ы) без запуска этой системы.Моя цель состоит в том, чтобы найти тех, кто вызывал некоторые методы (около 150 методов), и хотел бы получить имя всех тех, кто вызывал каждый метод.Возможно ли это сделать?

Есть ли способ сделать это (это не использовать иерархию вызовов или ссылку в Eclipse, потому что мне нужно найти вызывающие абоненты многих методов и записать это в мой файл Excel).)?

Большое спасибо.

Ответы [ 7 ]

17 голосов
/ 18 января 2011

В Eclipse вы можете сделать это, щелкнув правой кнопкой мыши метод и выбрав «Открыть иерархию вызовов».

2 голосов
/ 18 января 2011

Как упомянул Дэвид , это называется Иерархия вызовов.Вы можете получить к нему доступ из меню, вызываемого правой кнопкой мыши, или просто использовать сочетание клавиш: наведите курсор на имя метода, затем нажмите Ctrl + Alt + H .

2 голосов
/ 18 января 2011

Кроме того, в Eclipse вы можете сделать это, щелкнув правой кнопкой мыши метод и выбрав « reference » -> «XXX»

1 голос
/ 29 ноября 2016

Немного опоздал на вечеринку, но на основании вашего обновленного вопроса и комментария вы хотите получить имена всех вызывающих абонентов нескольких методов за один раз (и не должны делать одно и то же, т.е. откройте иерархию вызовов (150 раз) и в итоге получите что-то в формате, который вы можете использовать в электронной таблице.

Вот как это сделать с Eclipse для тех, кто сталкивается с той же проблемой (как я недавно):

  1. Получите все методы, вызывающие которых вас интересуют, в одном представлении. Если они все в одном классе, подойдет представление Outline , в противном случае выполните поиск и получите все свои методы для отображения в представлении результатов Поиск - вы можете указать там все виды интересных критериев, в вашем случае вам может потребоваться поиск методов в выбранных ресурсах (выберите сначала в Package Explorer ). Eclipse search dialog

  2. Выберите все методы, вызывающие абоненты которых вам интересны в этом представлении. Удерживайте нажатой Ctrl и щелкните, чтобы выбрать несколько элементов, или выполните Ctrl + A до Выберите все , а затем отмените выбор ненужных с помощью Ctrl + Shift + Нажмите.

  3. Откройте Иерархию вызовов для всех этих методов. Либо перетащите эти выбранные методы в представление Иерархия вызовов , либо используйте Ctrl + Alt + H или использовать контекстное меню. Это покажет все вызывающие все эти методы. (Если вы хотите погрузиться глубже, разверните по мере необходимости для извлечения абонентов из вызывающих абонентов и т. Д.)

  4. Выберите все в представлении Иерархия вызовов . Просто выполните Ctrl + A , пока представление имеет фокус.

  5. Скопируйте квалифицированные имена методов в буфер обмена. По умолчанию для этого нет сочетания клавиш, но вы можете щелкнуть правой кнопкой мыши выбранные файлы и выбрать Копировать квалифицированное имя . В итоге вы получите несколько строк в формате <package name>.<class name>.<method name>().

  6. Вставьте в ваш любимый текстовый редактор или электронную таблицу и манипулируйте при необходимости.

Испытано в Eclipse Neon.

1 голос
/ 27 августа 2013

В eclipse вы можете щелкнуть правой кнопкой мыши на имени метода и нажать «Открыть иерархию вызовов». Откроется другая панель и выберите «Открыть иерархию абонентов»

1 голос
/ 19 января 2012

В Eclipse вы можете сделать это, щелкнув правой кнопкой мыши по методу и выбрав «Открыть иерархию вызовов».

См. 5 параметров, приведенных в правой верхней части этой панели (Обновить) (отменить текущий поиск)(Показать иерархию вызывающих абонентов) (Показать иерархию вызывающих абонентов) (Показать список истории)

Для вас будет работать 3-й вариант.

0 голосов
/ 18 января 2011

В Netbeans щелкните правой кнопкой мыши по методу и перейдите к «найти использования».В качестве альтернативы, нажмите на название метода и затем нажмите alt + F7.

РЕДАКТИРОВАТЬ: К сожалению, только что видел, что это помечено для затмения, а не NetBeans.Тем не менее, я оставлю это здесь на случай, если это будет полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...