Eclipse - посмотрите, какие методы одного класса используются в другом? - PullRequest
9 голосов
/ 30 июня 2011

С Eclipse предоставляются следующие классы:

class Dao {
    public void one() {}
    public void two() {}
    public void three() {}
}

class ServiceA {
    Dao dao;
    public void a() {
        dao.one();
        dao.two();
    }
    public void b() {
        dao.one();
    }
}

class ServiceB {
    Dao dao;
    public void z() {
        dao.two();
        dao.three();
    }
}

... возможно ли увидеть список всех Dao методов, на которые ссылается ServiceA? Я ищу один вид, который покажет, что ServiceA использует one() и two() (не обращайте внимания, если one() указан дважды).

Я знаю, как видеть абонентов одного конкретного метода. Мне действительно нужен список всех методов, на которые есть ссылки в классе. Подумайте об унаследованных порядках кода на порядок больше: дао и сервисы с десятками (сотнями?) Методов. Мне не хочется проходить через метод иерархии вызовов по методу.

Ответы [ 5 ]

6 голосов
/ 30 июня 2011

На самом деле вы можете щелкнуть правой кнопкой мыши на методе Дао, а затем нажать «Открыть иерархию вызовов Ctrl + Alt + H», и Eclipse найдет для вас все вызовы метода Дао.

4 голосов
/ 26 февраля 2012

Конрад Гарус 30 июня '11 в 7:37 сказал в комментарии:

Да, кроме того, что мне нужно с противоположной стороны. Увидеть все методы, вызываемые из службы, а не все вызовы Dao.conreteMethod ().

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

«Ctrl + Alt + H» вызывает иерархию вызовов, как уже упоминалось здесь другими людьми.

Затем вам нужно нажать на эти значки, в зависимости от того, что вам нужно:

Show Callee Hierarchy

И

Show Caller Hierarchy

Редактировать

А как насчет ответа VonC здесь (это тот, на котором внутри изображен скриншот с ободком)?

Здесь я использовал CTRL-H для кодового поиска вызовов Dao.one ().

Результат: в представлении результатов поиска есть еще один маленький значок «группа по типу».

code search result

1 голос
/ 30 июня 2011

Для этого вы можете использовать плагин / инструмент покрытия кода.

Например:

  • Анализатор зависимостей (http://www.dependency -analyzer.org /)
  • Codecover
  • UCDetector
  • FindBugs
  • PMD
  • CodePro Analytics (бесплатно от Google)
1 голос
/ 30 июня 2011

Нажмите Ctrl+Shift+G, чтобы выполнить поиск, который показывает все места, где используется ваш метод или выбранный класс.

Кроме того, вы можете временно установить все методы public на private видимость ипроверьте места, где появляются ошибки.

0 голосов
/ 30 июня 2011

Если вы щелкнете правой кнопкой мыши по методу и выберете Open Call Hierarchy, вы все получите список всех классов, используя определенный метод.

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