IDEA高效查看源码的快捷键及小技巧

 更新时间:2022年01月22日 14:21:16   作者:Guide哥  
本篇文章这一部分的内容主要为大家介绍了一些平时看源码的时候常用的快捷键/小技巧!非常好用!掌握这些快捷键/小技巧,看源码的效率提升一个等级

基本操作

查看当前类的层次结构

使用频率相关快捷键
⭐⭐⭐⭐⭐Ctrl + H

平时,我们阅读源码的时候,经常需要查看类的层次结构。就比如我们遇到抽象类或者接口的时候,经常需要查看其被哪些类实现。

拿 Spring 源码为例,BeanDefinition 是一个关于 Bean 属性/定义的接口。

public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
  ......
}

如果我们需要查看 BeanDefinition 被哪些类实现的话,只需要把鼠标移动到 BeanDefinition 类名上,然后使用快捷键 Ctrl + H 即可。

在这里插入图片描述

同理,如果你想查看接口 BeanDefinition 继承的接口 AttributeAccessor 被哪些类实现的话,只需要把鼠标移动到 AttributeAccessor 类名上,然后使用快捷键 Ctrl + H 即可。

查看类结构

使用频率相关快捷键
⭐⭐⭐⭐Alt + 7(Win) / Command +7 (Mac)

类结构可以让我们快速了解到当前类的方法、变量/常量,非常使用!

我们在对应的类的任意位置使用快捷键 Alt + 7(Win) / Command +7 (Mac)即可。

在这里插入图片描述

快速检索类

使用频率相关快捷键
⭐⭐⭐⭐⭐Ctrl + N (Win) / Command + O (Mac)

使用快捷键 Ctrl + N (Win) / Command + O (Mac)可以快速检索类/文件。

在这里插入图片描述

关键字检索

使用频率相关快捷键
⭐⭐⭐⭐⭐见下文
  • 当前文件下检索 : Ctrl + F (Win) / Command + F (Mac)
  • 全局的文本检索 : Ctrl + Shift + F (Win) / Command + Shift + F (Mac)

查看方法/类的实现类

使用频率相关快捷键
⭐⭐⭐⭐Ctrl + Alt + B (Win) / Command + Alt + B (Mac)

如果我们想直接跳转到某个方法/类的实现类,直接在方法名或者类名上使用快捷键 Ctrl + Alt + B/鼠标左键 (Win) / Command + Alt + B/鼠标左键 (Mac) 即可。

如果对应的方法/类只有一个实现类的话,会直接跳转到对应的实现类。

比如 BeanDefinition 接口的 getBeanClassName() 方法只被 AbstractBeanDefinition 抽象类实现,我们对这个方法使用快捷键就可以直接跳转到 AbstractBeanDefinition 抽象类中对应的实现方法。

public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
  @Nullable
	String getBeanClassName();
  ......
}

如果对应的方法/类有多个实现类的话,IDEA 会弹出一个选择框让你选择。

比如 BeanDefinition 接口的 getParentName() 方法就有多个不同的实现。

在这里插入图片描述

查看方法被使用的情况

使用频率相关快捷键
⭐⭐⭐⭐Alt + F7

我们可以通过直接在方法名上使用快捷键 Alt + F7 来查看这个方法在哪些地方被调用过。

在这里插入图片描述

查看最近使用的文件

使用频率相关快捷键
⭐⭐⭐⭐⭐Ctrl + E(Win) / Command +E (Mac)

你可以通过快捷键 Ctrl + E(Win) / Command +E (Mac)来显示 IDEA 最近使用的一些文件。

在这里插入图片描述

查看图表形式的类继承链

使用频率相关快捷键
⭐⭐⭐⭐相关快捷键较多,不建议记

点击类名 右键 ,选择 Shw Diagrams 即可查看图表形式的类继承链。

在这里插入图片描述

你还可以对图表进行一些操作。比如,你可以点击图表中具体的类 右键,然后选择显示它的实现类或者父类。

在这里插入图片描述

再比如你还可以选择是否显示类中的属性、方法、内部类等等信息。

在这里插入图片描述

如果你想跳转到对应类的源码的话,直接点击图表中具体的类 右键 ,然后选择 Jump to Source

在这里插入图片描述

插件推荐

一键生成方法的序列图

序列图(Sequence Diagram),亦称为循序图,是一种 UML 行为图。表示系统执行某个方法/操作(如登录操作)时,对象之间的顺序调用关系。

这个顺序调用关系可以这样理解:你需要执行系统中某个对象 a 提供的方法/操作 login(登录),但是这个对象又依赖了对象 b 提供的方法 getUser(获取用户)。因此,这里就有了 a -> b 调用关系之说。

我们可以通过 SequenceDiagram 这个插件一键生成方法的序列图。

如果你因为网络问题没办法使用 IDEA 自带的插件市场的话,也可以通过 IDEA 插件市场的官网手动下载安装。

在这里插入图片描述

如何使用呢?

1、选中方法名(注意不要选类名),然后点击鼠标右键,选择 Sequence Diagram 选项即可!

在这里插入图片描述

2、配置生成的序列图的一些基本的参数比如调用深度之后,我们点击 ok 即可!

在这里插入图片描述

3、你还可以通过生成的时序图来定位到相关的代码,这对于我们阅读源码的时候尤其有帮助!

在这里插入图片描述

4、时序图生成完成之后,你还可以选择将其导出为图片。

在这里插入图片描述

相关阅读:IDEA一键生成方法的序列图神操作》

项目代码统计

为了快速分析项目情况,我们可以对项目的 代码的总行数、单个文件的代码行数、注释行数等信息进行统计。

Statistic 这个插件来帮助我们实现这一需求。

在这里插入图片描述

有了这个插件之后你可以非常直观地看到你的项目中所有类型的文件的信息比如数量、大小等等,可以帮助你更好地了解你们的项目。

在这里插入图片描述

你还可以使用它看所有类的总行数、有效代码行数、注释行数、以及有效代码比重等等这些东西。

在这里插入图片描述

如果,你担心插件过多影响 IDEA 速度的话,可以只在有代码统计需求的时候开启这个插件,其他时间禁用它就完事了!

相关阅读:《IDEA插件Statistic统计代码快速分辨烂项目

以上就是IDEA高效查看源码的快捷键及小技巧的详细内容,更多关于IDEA看源码快捷键技巧的资料请关注脚本之家其它相关文章!

相关文章

  • Java获取文件的类型和扩展名的实现方法

    Java获取文件的类型和扩展名的实现方法

    这篇文章主要介绍了Java获取文件的类型和扩展名的实现方法的相关资料,需要的朋友可以参考下
    2017-02-02
  • 深入了解Java 脚本化api编程

    深入了解Java 脚本化api编程

    Java 脚本 API 是一种独立于框架的脚本语言,使用来自于Java代码的脚本引擎 。可以使用Java语言编写定制/可扩展的应用程序并将自定义脚本语言选择留给最终用户 。下面我们来详细了解一下吧
    2019-06-06
  • Java私有构造器使用方法示例

    Java私有构造器使用方法示例

    这篇文章主要介绍了Java私有构造器的含义、关键字,同时通过实例向大家展示其使用方法,需要的朋友可以参考下
    2017-09-09
  • Java实现链表中元素的获取、查询和修改方法详解

    Java实现链表中元素的获取、查询和修改方法详解

    这篇文章主要介绍了Java实现链表中元素的获取、查询和修改方法,结合实例形式详细分析了Java针对链表中元素的获取、查询和修改相关原理、实现方法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • Spring搭配Ehcache实例解析

    Spring搭配Ehcache实例解析

    这篇文章主要为大家详细介绍了Spring搭配Ehcache实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 详解Mybatis动态sql

    详解Mybatis动态sql

    MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。本文给大家介绍Mybatis动态sql小结,感兴趣的朋友参考下
    2016-04-04
  • Java通过IO流输出文件目录的实例代码

    Java通过IO流输出文件目录的实例代码

    这篇文章主要介绍了Java通过IO流输出文件目录,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Feign之Multipartfile文件传输填坑

    Feign之Multipartfile文件传输填坑

    这篇文章主要介绍了Feign之Multipartfile文件传输埋坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java设计模式之责任链模式

    Java设计模式之责任链模式

    这篇文章介绍了Java设计模式之责任链模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • java注解处理器学习在编译期修改语法树教程

    java注解处理器学习在编译期修改语法树教程

    这篇文章主要为大家介绍了java注解处理器学习在编译期修改语法树教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论