Intellij IDEA 阅读源码的 4 个绝技(必看)

作者:Java技术栈 时间:2023-06-14 11:23:16 

前段时间分享了《阅读跟踪 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

Intellij IDEA 阅读源码的 4 个绝技(必看)

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

Intellij IDEA 阅读源码的 4 个绝技(必看)

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

Intellij IDEA 阅读源码的 4 个绝技(必看)

2、查看类层级关系

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

Intellij IDEA 阅读源码的 4 个绝技(必看)

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

Intellij IDEA 阅读源码的 4 个绝技(必看)

还有更 * 的!

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

Intellij IDEA 阅读源码的 4 个绝技(必看)

Intellij IDEA 阅读源码的 4 个绝技(必看)

Intellij IDEA 阅读源码的 4 个绝技(必看)

Intellij IDEA 阅读源码的 4 个绝技(必看)

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

3、查看类结构

Intellij IDEA 阅读源码的 4 个绝技(必看)

Intellij IDEA 阅读源码的 4 个绝技(必看)

如上图所示,IDEA 中也有 Eclipse 中 outline 的面板,叫作:Structure,有了这个面板,可以快速浏览一个类的大纲,也可以快速定位到类的方法、变量等。

也可以使用快捷键 Alt + 7 调出这个面板。

4、源码统计

Intellij IDEA 阅读源码的 4 个绝技(必看)

Intellij IDEA 阅读源码的 4 个绝技(必看)

如图所示,栈长在 IDEA 中装了一个 Statistic 插件,这个插件只支持 JDK 1.8+。

有了这个插件,它可以在项目中按文件类型进行代码的行数、数量、大小统计。这样你就能知道整个源码的总体数量,你也可以把已经阅读的做统计,慢慢实现源码阅读的攻破。

熟练的运用 IDEA 中各个小技巧,让阅读跟踪源码变得更轻松。

来源:https://www.cnblogs.com/javastack/p/10735462.html

标签:intellij,idea,源码
0
投稿

猜你喜欢

  • 一文详解Java中流程控制语句

    2023-11-26 11:39:49
  • SpringBoot绿叶显示yml和端口问题及解决方法

    2023-12-09 00:29:13
  • 详解tryAcquire()、addWaiter()、acquireQueued()

    2022-07-30 10:24:05
  • Android Apt之Activity Route的示例

    2022-03-31 17:05:18
  • .net使用Aspose.Words进行Word替换操作的实现代码

    2023-03-23 21:28:59
  • C#实现查杀本地与远程进程的方法

    2023-08-10 08:01:30
  • Spring MVC 关于controller的字符编码问题

    2023-06-17 09:52:52
  • springboot如何重定向外部网页

    2022-11-12 05:19:19
  • c#调用存储过程实现登录界面详解

    2023-01-02 22:03:07
  • 教你怎么使用Java实现WebSocket

    2022-10-31 04:08:50
  • C#利用VS中插件打包并发布winfrom程序

    2022-01-01 21:18:22
  • 详解C#中通过委托来实现回调函数功能的方法

    2021-08-14 05:02:58
  • 学生视角看Java 面向对象的继承本质

    2022-04-23 21:51:10
  • 详解Spring Data JPA动态条件查询的写法

    2022-03-17 18:26:06
  • C# 获取本机IP地址(IPv4和IPv6)

    2023-09-04 08:48:36
  • Android 一些常用的混淆Proguard

    2021-10-13 06:46:29
  • JAVA8 十大新特性详解

    2023-07-02 10:03:27
  • java8实现List中对象属性的去重方法

    2023-08-30 20:50:48
  • Springboot如何根据实体类生成数据库表

    2023-11-20 13:54:39
  • Java泛型的简单实例

    2023-11-27 01:03:38
  • asp之家 软件编程 m.aspxhome.com