用 IDEA 看源码的正确姿势!你掌握了吗?
作者 | Dulk
来源 | https://www.cnblogs.com/deng-cc/p/6927447.html
最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到 Servlet 部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟。
这次利用了 IDEA 的 diagram,结果一目了然,也是好用到炸裂,就此分享。
1、查看图形形式的继承链
在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show ... Popup,只是前者新建在标签页内,后者以浮窗的形式展示:
实际上,你也可以从左边的项目目录树中,对你想查看的类点击右键,同样选择 Diagrams,效果是一样的:
然后你就会得到如下图所示的继承关系图形,以自定义的 Servlet 为例:
显而易见的是:
蓝色实线箭头 是指继承关系
绿色虚线箭头 是指接口实现关系
2、优化继承链图形,想我所想
2.1 去掉不关心的类
得到的继承关系图形,有些并不是我们想去了解的,比如上图的 Object 和 Serializable,我们只想关心 Servlet 重要的那几个继承关系,怎么办?
简单,删掉。点击选择你想要删除的类,然后直接使用键盘上的 delete 键就行了。清理其他类的关系后图形如下:
如果您正在学习Spring Cloud,推荐一个连载多年还在继续更新的免费教程:https://blog.didispace.com/spring-cloud-learning/
2.2 展示类的详细信息
有人说,诶,这怎么够呢,那继承下来的那些方法我也想看啊?简单,IDEA 通通满足你。
在页面点击右键,选择 show categories,根据需要可以展开类中的属性、方法、构造方法等等。当然,第二种方法也可以直接使用上面的工具栏:
然后你就会得到:
什么,方法里你还想筛选,比如说想看 protected 权限及以上范围的?简单,右键选择 Change Visibility Level,根据需要调整即可。
什么,你嫌图形太小你看不清楚?IDEA 也可以满足你,按住键盘的 Alt,竟然出现了放大镜,惊不惊喜,意不意外?
2.3 加入其他类到关系中来
当我们还需要查看其他类和当前类是否有继承上的关系的时候,我们可以选择加其加入到当前的继承关系图形中来。
在页面点击右键,选择 Add Class to Diagram,然后输入你想加入的类就可以了:
例如我们添加了一个 Student 类,如下图所示。好吧,并没有任何箭头,看来它和当前这几个类以及接口并没有发生什么不可描述的关系:
2.4 查看具体代码
如果你想查看某个类中,比如某个方法的具体源码,当然,不可能给你展现在图形上了,不然屏幕还不得撑炸?
但是可以利用图形,或者配合 IDEA 的 structure 方便快捷地进入某个类的源码进行查看。
双击某个类后,你就可以在其下的方法列表中游走,对于你想查看的方法,选中后点击右键,选择 Jump to Source:
在进入某个类后,如果还想快速地查看该类的其他方法,还可以利用 IDEA 提供的 structure 功能:
选择左侧栏的 structure 之后,如上图左侧会展示该类中的所有方法,点击哪个方法,页面内容就会跳转到该方法部分去。
另外,如果您正在学习Spring Cloud,推荐一个连载多年还在继续更新的免费教程:https://blog.didispace.com/spring-cloud-learning/
3、最后
用上面提到的的 IDEA 这些功能,学习和查看类关系,了解诸如主流框架源码之类的东西,可以说是非常舒服了。
往期推荐
我是如何做到的:不切换 Git 分支,同时在多个分支上工作的?
Spring Security 和 Shiro 该如何选择?
人人影视:不可能再恢复或重启,App的尸体可以删除了
Spring Boot 2.6之后,动态权限控制终于可以用起来了!
浪潮编了个“谎言”举报我们...
技术交流群
最近有很多人问,有没有读者交流群,想知道怎么加入。加入方式很简单,有兴趣的同学,只需要点击下方卡片,回复“加群“,即可免费加入我们的高质量技术交流群!
点击阅读原文,送你免费Spring Boot教程!
用 IDEA 看源码的正确姿势!你掌握了吗?相关推荐
- 为什么要看源码、如何看源码,高手进阶必看
由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码.如何看源码这两个问题的思考. 看源码的意义 看源码只是一种方法.手段,而不是目的.我也曾经给自己制定过&q ...
- 11没有源码注释_我们为什么要看源码、应该如何看源码?
看源码的意义 看源码只是一种方法.手段,而不是目的.我也曾经给自己制定过"阅读xxx源码"的目标,现在看起来真的很蠢,一点不smart(specific.measurable.at ...
- JAVA要不要看源码_为什么要看源码、如何看源码,高手进阶必看
作者:xybaby www.cnblogs.com/xybaby/p/10794700.html 由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码.如何看源 ...
- 阅读 ANDROID 源码的一些姿势
日常开发中怎么阅读源码 找到正确的源码 IDE是日常经常用的东西,Eclipse就不说了,直接从Android Studio(基于IntelliJ Community版本改造)开始. 我们平时的And ...
- 阅读 Android源码的一些姿势
日常开发中怎么阅读源码 找到正确的源码 IDE 是日常经常用的东西,Eclipse 就不说了,直接从 Android Studio(基于 IntelliJ Community 版本改造)开始. 我们平 ...
- 阅读Android源码的一些姿势
2019独角兽企业重金招聘Python工程师标准>>> 前面吐槽了 有没有必要阅读Android源码,后面觉得只吐槽不太好,还是应该多少弄点干货.需要说明的是,Android每个系统 ...
- 4月,诚邀你参加源码共读,学会看源码,打开新世界!开阔视野
大家好,我是若川.很多关注我的新朋友可能不知道我组织了源码共读活动~ 也有很多人不知道我是谁.有人以为我是80后.有人以为我是全职自媒体等等.若川的 2021 年度总结,弹指之间 这篇文章写了我是16 ...
- 面试官问我平时怎么看源码的,我把这篇文章甩给他了。
本文来自作者投稿,原作者:WwpwW 1.1,为什么要分析源码? 分析源码可以培养一下自己独立思考问题的能力(愿意读源码找问题的能力),最重要的是我们不用再买纸质书去学习数据结构了,数据结构的应用都在 ...
- 小豹子带你看源码:Java 线程池(三)提交任务
承上启下:上一篇文章小豹子讲了线程池的实例化过程,粗略介绍了线程池的状态转换:这篇文章主要讲了我运行线程池时遇到的小问题,以及 execute 方法的源码理解. 4 并不算疑难的 Bug 按照我们的规 ...
最新文章
- 数据库SQL的分组函数
- Xposed模块编写遇到的一些问题以及解决
- 收割百度、阿里、腾讯、头条、网易华为等大厂Offer的面经
- 启动时指定需要绑定的网卡_为什么小型汽油机在启动时需要拉风门,而汽车却不用?...
- 无心剑中译海涅《新春》
- matlab练习程序(径向模糊1)
- linux 系统频率,Linux下CPU的手动频率设定
- 配置高低档计算机,电脑配置低怎么办,电脑配置高但是fps低
- mysql从备份,mysql 主从同步范例-从同步备份步骤
- Doom启示录(二)------李乃峰所崇拜之 两个约翰!
- Android应用源码英语四级单选助手答题类app源码下载
- 服务器上的VGA切换原理,浅谈笔记本中VGA信号切换的原理
- c# 尝试从一个网络位置加载程序集...
- oracle包与实体包,实体oracle数据库学习
- 浅夏,盈一眸清凉,捻一指馨香
- 为什么要用“设计模式”?(六大好处)
- redis修改密码(windows)
- Unity3D教程:简单的碰撞检测
- 三角函数的向量表示的原理计算
- google code提供的免费的SVN服务器