zoukankan      html  css  js  c++  java
  • Intellij IDEA 阅读源码的 4 个绝技,我必须分享给你!

    640

    Java技术栈

    www.javastack.cn

    优秀的Java技术公众号


    前段我在Java技术栈微信公众号时间分享了《阅读跟踪 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

    640?wx_fmt=png

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

    640?wx_fmt=png

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

    640?wx_fmt=png

    2、查看类层级关系

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

    640?wx_fmt=png

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

    640?wx_fmt=png

    还有更屌的!

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

    640?wx_fmt=png
    640?wx_fmt=png
    640?wx_fmt=png
    640?wx_fmt=png

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

    3、查看类结构

    640?wx_fmt=png
    640?wx_fmt=png

    如上图所示,IDEA 中也有 Eclipse 中 outline 的面板,叫作:Structure,有了这个面板,可以快速浏览一个类的大纲,也可以快速定位到类的方法、变量等。大家想学习 Eclipse 的也可以关注Java技术栈微信公众号,在后台回复:"工具",即可获取相关教程。

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

    4、源码统计

    640?wx_fmt=png
    640?wx_fmt=png

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

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

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

    关注Java技术栈微信公众号,在后台回复关键字:idea,可以获取栈长整理的更多往期 IDEA 技术干货。

    知识延伸

    本文大部分内容摘自《Java技术栈》知识星球。

    公众号留言不能联系上下文,有些问题不是很方便进行回复。想学习更多的 IDEA 技巧,可以点击「Java技术栈」链接加入栈长的知识星球,有问题可以在上面提问,栈长有空都会给予回复。作为付费粉丝的回报,栈长也会偶尔在星球上分享一些工作中 IDEA 使用的小技巧。

    关注Java技术栈微信公众号,在后台回复关键字:Java,可以获取更多栈长整理的Java技术干货。

    最近干货分享

    厉害了,七牛云 CEO 来讲架构了!

    Spring Boot 面试,一个问题就干趴下了!

    Java 锁原理、锁优化、CAS、AQS详解!

    推荐一个技术圈子,30k的offer靠它了!

    分享一份Java架构师学习资料!

    640


    640点击「阅读原文和栈长学更多…
  • 相关阅读:
    AngularJS学习之旅
    webbug3.0菜鸟笔记1
    CTF练习(1)这是一张单纯的图片?
    三步删除U深度,老毛桃,大白菜捆绑软件!!
    flex弹性布局学习总结
    C# 播放音乐
    获取文件夹中的所有文件名
    C# 利用委托和事件 传入一个参数进行进行计算并返回结果
    C# 自定义颜色
    检测键盘是否按下指定按键
  • 原文地址:https://www.cnblogs.com/java-stack/p/11952323.html
Copyright © 2011-2022 走看看