一篇文章告诉你IDEA工具如何知道程序的调用关系
一个刚入门的程序员,最快的成长方式就是阅读别人的代码(人工智能时代,给提示词生成代码),阅读别人的代码其实是一件很困难的事情,因为你不知道调用的关系,一个项目中有很多类,这些类相互会如何调用,今天总结一篇文档,让大家快速学会程序的调用关系。
一个刚入门的程序员,最快的成长方式就是阅读别人的代码(人工智能时代,给提示词生成代码),阅读别人的代码其实是一件很困难的事情,因为你不知道调用的关系,一个项目中有很多类,这些类相互会如何调用,今天总结一篇文档,让大家快速学会程序的调用关系
目录
1 工具篇一(SequenceDiagram)
idea插件库里面有个SequenceDiagram的工具,这个工具能显示程序之间的调用关系,首先看看如何安装。
1.1 具体步骤
①点击菜单栏中的File-》Settings-》plugins,在搜索看中输入SequenceDiagram点击install即可,安装以后需要重启。

②方法名右键,可以看到有SequenceDiagram的子菜单,快捷键是ALT+S.

③ 在下面的方框中,我们能看到程序之间的调用关系,截图只有5层是因为被系统限制只能显示调用5层。
④ 上面图中就是一个时序图,浅黄色的是类名,下面1.1、1.2后面的就是方法名字,所以工具我能知道此方法后还会调用那些方法,对刚摸索别人的代码非常有帮助。左边有个小齿轮是设置相关参数的。
2 工具不足之处
不知道大家有没有考虑一个问题,这个只有调用之后的关系,有时候我想知道这个方法被那个方法调用,这个工具还不能有效的展出,如果我一个project下面有好几十个类,我怎知道这些人的关系。下面就如另外一篇,介绍查询方法被那些类调用
2 工具篇二(Draw Graph)
这个工具的作用是可以选中包中的类,查看程序之间的调用关系,这个不是简单的查询类与类之间的关系,而是根据方法的调用用图形的方式显示类之间的调用关系。
2.1 具体步骤
①点击菜单栏中的File-》Settings-》plugins,在搜索看中输入Draw Graph点击install即可,安装以后需要重启。

② 选中IDP下面的类有右键,有个文件方法调用图的选项,选中它,编码区域的右边就会有一个新的图框,是显示各个类中方法的调用关系。

③ 里面有几个图形显示的模式。可以根据自己的爱好显示,所以如果对别人的代码不熟悉,但是不知道如何上手的时候,我们可以先看看这个图,知道大致的调用顺序,图中的灰色框是方法名,单击以后就会调转到具体的代码地方。

④ 因为屏幕区域大小的问题,若果遇到类比较多,作用拖动是不方便的,这个时候我们可以把HTML下载下来,这样在浏览器中,就可以随意拖动大小

3 内置工具三
idea工具其实有两个快捷键是查询方法被什么地方调用,ctrl+alt+h与alt+f7,它们的区别是:
alt+f7的结果是由大到小的层次,结果的树形结构是模块->包->类->方法->行。
ctrl+alt+h的搜索结果的结构是目标方法->调用目标方法的方法a->调用a的方法b……这样的结构
同样我们用例子来说明他们之间的区别:
案例一:(alt+f7)我想看extractSAMLMessageContext方法被什么地方调用,右键后选择Find Usages,系统就自动会调转到地方的地方


案例二:(ctrl+alt+h)
- SamlBuilder.buildIssuer(String) (saml.example.idp)
- SamlBuilder.buildAssertion(SamlPrincipal, Status, String) (saml.example.idp)
- SamlMessageHandler.sendAuthnResponse(SamlPrincipal, HttpServletResponse) (saml.example.idp)
上面是调用的关系SamlBuilder类的buildIssuer方法被SamlBuilder类的buildAssertion方法调用,buildAssertion方法被SamlMessageHandler类的sendAuthnResponse方法调用

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)