Я работаю над проектом в Intellij Ultimate 14. Я не хочу делать живую отладку приложения для отслеживания звонков. Время, которое потребуется, чтобы следовать всем кодам, было бы безумным. Я надеюсь, что Intellij имеет какой-то инструмент анализа, который может предоставить мне все вызовы, сделанные в рамках проекта, с учетом конкретной отправной точки или точек. Поэтому, если я начинаю с метода A() и A вызывает B() и C(), а B вызывает D(), то я хотел бы иметь возможность собирать и экспортировать или отображать такую информацию. Мне также нужны аннотации к любому методу, который должен быть включен, и он должен был бы иметь возможность разрешать интерфейсы для реализаций, где это возможно (многие интерфейсы имеют только один), или, возможно, позволяют мне выбирать реализацию, если это необходимо. Я не думаю, что Intellij имеет такую функциональность, встроенную вне возможности найти всех вызывающих/вызываемых лиц одного указанного метода. Существует ли такой инструмент?Intellij (или другое) - Можно ли увидеть график/дерево всех вызовов, сделанных на Java?
ответ
Когда вы наводите указатель на имя вызываемого метода, нажимая ctrl-alt-H
, вы попадете в окно вызова иерархии.
же, если вы предпочитаете меню: «Navigate-> Вызов иерархии»
Ну ... Я действительно должен был это видеть раньше. Это довольно близко, это точно. Я не понимал, что Intellij мог проследить его дальше, чем один прыжок. Ницца! Теперь, если он может просто предоставить информацию об аннотациях, быть автоматизированным, чтобы получать партию стартовых точек и экспортировать его каким-то образом. Исключение вызовов классов, которые не являются непосредственно в проекте, было бы неплохо, т. Е. Вызовы, сделанные для зависимостей или собственные классы Java. Это похоже на это, но не полностью. – user1017413
@ user1017413 В окне Иерархии моего вызова intellij есть кнопка «Экспорт в текстовый файл». Вы можете проверить свое? – Kent
Нет. Ряд других вариантов, но нет экспорта. Возможно, они были добавлены позже. Тем не менее, с этой функциональностью, встроенной в нее, я задаюсь вопросом, могу ли я написать плагин, который мог бы сделать это без особых проблем. – user1017413
Это не граф, который называет кого в целом, но для данного значения вы можете увидеть дерево абонентов, которые производят или потребляют это значение
- Чтобы увидеть дерево вызовов, которые производят значение, щелкните его правой кнопкой мыши и выберите «Анализ» | Проанализируйте поток данных.
- Чтобы увидеть дерево всех вызовов, которые читают значение, щелкните его правой кнопкой мыши и выберите «Анализ» | Проанализируйте поток данных отсюда.
Существует также перемещение | Иерархия вызовов, которая может переключаться между вызывающим и вызываемым деревьями с помощью кнопок вверху.
Атлас (http://www.ensoftcorp.com/atlas) - это плагин Eclipse, который может это сделать. Существует функция, называемая «умным видом», которая делает то, что вы описали. Выберите отношение «вызов», а затем щелкните имя метода, и в представлении отобразятся родительский и дочерний методы в графе вызовов. График является intereactive, поэтому, если вы дважды щелкните по узлу или краю на графике, он перейдет к соответствующему исходному коду. Существуют и другие отношения, такие как поток управления и поток данных, но граф вызовов - это то, что вы описали в своем вопросе.
Почему вы хотите это увидеть? –
Необходимо графическое отображение потока событий/данных с достаточным количеством деталей. Это определенно помогает упростить процесс. – user1017413