介绍一个IDEA看源码的神器!

四猿外

共 1633字,需浏览 4分钟

 · 2022-03-02

之前发的介绍 Java 和 Spring 学习经验的两篇文章,阅读扑街,可能太硬核了……

学好Spring,分三步!
用Java十多年了,我也不敢说“精通”

这次说点轻松的。

最近在看源码,这次利用了 IDEA 的 diagram,结果一目了然,也是好用到炸裂,就此分享。

1 查看图形形式的继承链

在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后者以浮窗的形式展示:

e4e3ffb92587632876ff73bfd7975e4f.webp

实际上,你也可以从左边的项目目录树中,对你想查看的类点击右键,同样选择 Diagrams,效果是一样的:

1a66d415f2f7e0b213a07b31e81f6b7e.webp


然后你就会得到如下图所示的继承关系图形,以自定义的 Servlet 为例:

3c2e165bad9fdf93afb51c104707b676.webp


显而易见的是:

  • 蓝色实线箭头 是指继承关系

  • 绿色虚线箭头 是指接口实现关系

2 优化继承链图形,想我所想

2.1 去掉不关心的类

得到的继承关系图形,有些并不是我们想去了解的,比如上图的 Object 和 Serializable,我们只想关心 Servlet 重要的那几个继承关系,怎么办?

简单,删掉。点击选择你想要删除的类,然后直接使用键盘上的 delete 键就行了。清理其他类的关系后图形如下:

e40a6ba884bb2c7f0f064e66f16d0805.webp


2.2 展示类的详细信息

有人说,诶,这怎么够呢,那继承下来的那些方法我也想看啊?简单,IDEA 通通满足你。

在页面点击右键,选择 show categories,根据需要可以展开类中的属性、方法、构造方法等等。当然,第二种方法也可以直接使用上面的工具栏:

b69e1a43fd1097b240978cc232de6a7a.webp

然后你就会得到:

6eca9b1335fdf474a52eda767286d840.webp


什么,方法里你还想筛选,比如说想看 protected 权限及以上范围的?简单,右键选择 Change Visibility Level,根据需要调整即可。

1641e969c0824f4c55aa665fbe57634f.webp


什么,你嫌图形太小你看不清楚?IDEA 也可以满足你,按住键盘的 Alt,竟然出现了放大镜,惊不惊喜,意不意外?

b7752c05780d4deabc92547012d5060e.webp

2.3 加入其他类到关系中来

当我们还需要查看其他类和当前类是否有继承上的关系的时候,我们可以选择加其加入到当前的继承关系图形中来。

在页面点击右键,选择 Add Class to Diagram,然后输入你想加入的类就可以了:

22931b55f30723eb3b0d204227905e2c.webp

例如我们添加了一个 Student 类,如下图所示。好吧,并没有任何箭头,看来它和当前这几个类以及接口并没有发生什么不可描述的关系:

62dd26bb8ae85f759eb658a96a4a0f74.webp


2.4 查看具体代码

如果你想查看某个类中,比如某个方法的具体源码,当然,不可能给你展现在图形上了,不然屏幕还不得撑炸?

但是可以利用图形,或者配合 IDEA 的 structure 方便快捷地进入某个类的源码进行查看。

双击某个类后,你就可以在其下的方法列表中游走,对于你想查看的方法,选中后点击右键,选择 Jump to Source:

18370d880246d40f0147156b840d6465.webp


df3940d0125a5204e74c9425510ac367.webp


在进入某个类后,如果还想快速地查看该类的其他方法,还可以利用 IDEA 提供的 structure 功能:

5079181700c27865176c40a377ea326c.webp


选择左侧栏的 structure 之后,如上图左侧会展示该类中的所有方法,点击哪个方法,页面内容就会跳转到该方法部分去。

| 最后

用上面提到的的 IDEA 这些功能,学习和查看类关系,了解诸如主流框架源码之类的东西,可以说是非常舒服了。

ps. 如果你的 IDEA 没有这个功能,可能因为你用的 IDEA 是社区版。

- END -

来源|Dulk| cnblogs.com/deng-cc/p/6927447.html


推荐阅读

学好Spring,分三步!

用Java十多年了,我也不敢说“精通”



你好,我是四猿外。

一家上市公司的技术总监,管理的技术团队一百余人。想了解我如何管理团队——我,管理100多人团队的二三事

我从一名非计算机专业的毕业生,转行到程序员,一路打拼,一路成长。

我会通过公众号,
把自己的成长故事写成文章,
把枯燥的技术文章写成故事。

我建了一个读者交流群,里面大部分是程序员,一起聊技术、工作、八卦。欢迎加我微信(备注加群),拉你入群。


浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报