Intellij IDEA 阅读源码的 4 个绝技,我必须分享给你!
前段时间分享了《阅读跟踪 Java 源码的几个小技巧》是基于 Eclipse 版本的,看大家的留言都是想要 IDEA 版本的源码阅读技巧。
所以,为了满足众多 IDEA 粉丝的要求,栈长我特意做一期 IDEA 版的。
1、定位到方法实现类
public static Object getBean(String name) {
return applicationContext.getBean(name);
}
如以上代码,IDEA 如何跳转到 getBean 方法的实现类?
在 IDEA 中,CTRL + 鼠标左击 默认会跳到方法所在的接口,如 getBean 就会跳到 BeanFactory 接口里面去。
org.springframework.beans.factory.BeanFactory

在 IDEA 中略显麻烦,在引用的方法上 CTRL + ALT + 鼠标左击(B)可以实现跳转至实现类,如果有多个实现类会弹出让你选择。

点击右上角 Open as Tool Window 图标还能展开更多详细。

2、查看类层级关系
到了 BeanFactory 类,在任意地方使用快捷键 CTRL + H 可以打开类的继承层级面板。

或者直接选中 BeanFactory 类名称,再按 CTRL + ALT + 鼠标左击(B),同样可以展示 BeanFactory 类的所有继承类的关系。

还有更屌的!
右键任意类,选择 Diagrams > Show Diagram... 可以打开类的继承图。




看起来有点乱,那是因为我选择了所有实现类展示,实际请合理利用 Show Parents 和 Show Implementations 菜单。
3、查看类结构


如上图所示,IDEA 中也有 Eclipse 中 outline 的面板,叫作:Structure,有了这个面板,可以快速浏览一个类的大纲,也可以快速定位到类的方法、变量等。
也可以使用快捷键 Alt + 7 调出这个面板。
4、源码统计


如图所示,栈长在 IDEA 中装了一个 Statistic 插件,这个插件只支持 JDK 1.8+。
有了这个插件,它可以在项目中按文件类型进行代码的行数、数量、大小统计。这样你就能知道整个源码的总体数量,你也可以把已经阅读的做统计,慢慢实现源码阅读的攻破。
熟练的运用 IDEA 中各个小技巧,让阅读跟踪源码变得更轻松。
更多往期 IDEA 技术文章可以关注Java技术栈微信公众号,在后台回复关键字:IDEA。
Intellij IDEA 阅读源码的 4 个绝技,我必须分享给你!的更多相关文章
- 阅读源码的利器——Intellij-IDEA-Replace-in-Path-使用技巧
前言 讲讲宇宙排名第二的开发工具-–IDEA的使用技巧. 搜索/替换 技巧 阅读源码的利器 1.Match case: 如果勾选该按钮,搜索时将区分大小写字母. 2.Preserve case ...
- 【转】使用 vim + ctags + cscope + taglist 阅读源码
原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...
- Spring源码解析——如何阅读源码(转)
最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想. 手码不易,转载请注明:xingoo ...
- Spring源码解析——如何阅读源码
最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想. 手码不易,转载请注明:xingoo ...
- 阅读源码(III)
往期系列: <由阅读源码想到> <由阅读源码想到 | 下篇> Medium上有一篇文章Why You Don't Deserve That Dream Developer Jo ...
- 阅读源码(IV)
往期系列: <由阅读源码想到> <由阅读源码想到 | 下篇> <阅读源码(III)> Eric S.Raymond的写于2014年的<How to learn ...
- How Tomcat works — 一、怎样阅读源码
在编程的道路上,通过阅读优秀的代码来提升自己是很好的办法.一直想阅读一些开源项目,可是没有合适的机会开始.最近做项目的时候用到了shiro,需要做集群的session共享,经过查找发现tomcat的s ...
- 使用 vim + ctags + cscope + taglist 阅读源码
转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合 ...
- 转载~Linux 平台下阅读源码的工具
Linux 平台下阅读源码的工具 前言 看源代码是一个程序员必须经历的事情,也是可以提升能力的一个捷径.个人认为: 要完全掌握一个软件的方法只有阅读源码在Windows下有sourceinsight这 ...
随机推荐
- 你不知道的JavaScript--Item10 闭包(closure)
JavaScript 闭包究竟是什么? 用JavaScript一年多了,闭包总是让人二丈和尚摸不着头脑.陆陆续续接触了一些闭包的知识,也犯过几次因为不理解闭包导致的错误,一年多了资料也看了一些,但还是 ...
- 32.APP后端处理表情的一些技巧
app应用中文字夹带表情是个很常见的现象.甚至一些40多岁的大叔级用户,也喜欢在自己的昵称中夹带表情,在产品运营后发现这个现象,彻底颠覆了我的世界观. 在后台处理表情的时间,我遇到过下面3个问题: 1 ...
- Offcie2013 无法显示 Aurora解决方法
问题:安装Office2013和Aurora后,Word菜单栏中无Aurora 原因:aurora安装目录中缺失office.dll,word2013未加载COM文件office.dll和模板文件wo ...
- if_else_while_for
import getpass #标准库里要加密密码需要导包getpass.但是getpass在pycharm中不好用,需要在命令窗口中输入才管用. _username = "abc" ...
- SQLServer 数据库重命名
//SQLServer(将user重命名为us) alter table user rename us;
- HTTP 常见状态码解析
1XX 表示消息 2XX 表示成功 3XX 表示重定向 4XX 表示请求错误 5XX 表示服务器端错误 消息:请求已被接受,需要继续处理.由于 HTTP/1.0 协议中没有定义任何 1xx 状态码. ...
- 【缩点+拓扑判链】POJ2762 Going from u to v or from v to u?
Description In order to make their sons brave, Jiajia and Wind take them to a big cave. The cave has ...
- BZOJ_2792_[Poi2012]Well_二分答案
BZOJ_2792_[Poi2012]Well_二分答案 Description 给出n个正整数X1,X2,...Xn,可以进行不超过m次操作,每次操作选择一个非零的Xi,并将它减一. 最终要求存在某 ...
- Hibernate-ORM:05.Hibernate中的list()和iterator()
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Hibernate中查多条(全部)使用list()或iterator() 本篇介绍: 1.如何使用list() ...
- js获取数组中最大值和最小值
var max = Math.max.apply(null, 数组); 获取最大值 var min = Math.min.apply(null, 数组);获取最小值 一句话获取数组中最大的数,最小数