Может ли современная IDE обнаружить использование поля / метода в поддереве?

1

Я часто встречаю следующую проблему:

У меня есть следующий код:

void  rootMethod(){
    C c = method1(a,b);
    method2(c);
}

C выглядит так:

class C{
   Type1 param1;
   Type2 param2;
}

Я хочу найти все места, где внутри method2 и все методы вызывается в этом методе (рекурсивно в глубоком) использует поле c.param1.

Изображение 174551

ОБНОВИТЬ

Изображение 174551Изображение 174551

Теги:
intellij-idea
ide

2 ответа

3
Лучший ответ

Я могу предложить вам Ctrl-Alt-H в затмении. Это самый близкий вариант того, что вам нужно. Нажмите этот ярлык на своем поле, и вы увидите все иерархии вызовов, которые может видеть Eclipse. Затем выберите корневой элемент в иерархии, щелкните правой кнопкой мыши и выберите "Копировать расширенную иерархию". Вставьте это в текстовый редактор. Теперь method2 поиск method2.

  • 0
    Я знаю эту особенность. но проблема в том, что целевой метод может вызывать в глубине .... Я пытаюсь нарисовать. Пожалуйста, прочитайте обновление.
  • 0
    Часто method2 имеет много запутанных вызовов
Показать ещё 10 комментариев
0

В только что выпущенном IntelliJ IDEA 16 EAP возможно только (только):

  • Вызов иерархии вызовов на method2
  • Просмотрите дерево иерархии, чтобы показать все методы, которые вас интересуют.
  • Вызов поиска в поле C.param1
  • Изменение параметров поиска использования для включения перегруженных методов и поиска в иерархии областей "Callees of method2"

Это будет отображаться везде в иерархии, C.param1 используется поле C.param1.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню