我们使用工具的时候,一般都会把工具的界面上所有功能都看一遍,然后使用一遍,看看究竟该功能能不能提供一些开发或学习上面的便利,所谓工欲善其事必先利其器嘛。
有两个功能在看源码时是非常方便的。其中我要重点介绍一个功能,那就是 type hierarchy。常用eclipse的同学都知道,quick type hierarchy的快捷键是 Ctrl + T,它可以快速查看类的继承结构,并且有一个明显的层次关系,能够很明了的了解继承顺序。在 idea 中对应快捷键是 Ctrl + H,你可以通过 Navigate 菜单找到它。如下图所示:
从图中可以看到你的项目中,哪些类实现了该接口,通过包名识别。
如果是第一次调出 hierarchy的同学,还需要仔细再看下这个面板的头部,有两个非常容易辨识的图标,一个是 查看父类关系,一个是查看子类关系,图示中“子类关系”被选中,所以我们就看到了 Executor的所有子类和子接口:
调出 hierarchy后,我们发现它就靠在右侧边栏,并且还有一个 8 的标识,用过idea的同学都应该很熟悉,使用 Alt + 8 就可以打开这个侧边栏。不过可能是版本关系,使用 Alt + 8 打开 hierarchy的话,不能像 Alt + 7 (Structure)那样实时更新视图。(可能是因为该视图中有一个蓝色箭头,指向当前展示的type hierarchy的入口吧。仔细观察图示就能看到。)这里演示的时候,我的idea版本还是 2017.1.5 。
在 Type Hierarchy中,我们直接可以查看其父类和子类的关系。而如果要单独查看父类关系路径,还可以使用 Diagram功能。你可以通过右键菜单找到它。快捷键是 Ctrl + Alt+ U (浮窗方式)和 Ctrl + Alt + Shift + U (新窗方式),如下图,从ThreadPoolExecutor类查看其父类和父接口:
当然,在前面介绍过 idea 的 type Hierarchy 功能之后,很多同学应该发现,还可以通过 type Hierarchy的视图选择 supertype hierarchy来查看接口或类的父类或父接口,不过层次是倒过来的。
那么,掌握了这两个快捷键以后,在查看源码时,将会是一个利器。