IDEA中查看类继承图和类源码的骚操作

我们都知道IDEA这个开发工具非常好用,功能非常之多,今天在复习Java集合体系的时候,想查看某个类或接口的继承结构,然后就搜索一波,都是使用了IDEA Diagram的插件,这里也分享一下。

比如我写了这样一段代码

public class CollectionLearning {
 public static void main(String[] args) {
  List list = new ArrayList();
  list.add("java");
  list.add("Android");
  list.add("python");
  list.add("前端");
  //lambda+方法引用:遍历list集合元素
  list.forEach(System.out::println);
 }
}

然后我想查看ArrayList的继承结构,我们可以右键点击ArrayList类,在弹出的对话框选择Diagram。

会显示两个选项:

Show Diagram… -->在新标签页显示类继承结构图

Show Diagram Popup… -->在当前页弹层显示类继承结构图

感觉还是在新标签页显示好,我们就看到了ArrayList的继承结构图

这样看就非常清晰明了,有时候觉得把全部有关系的类或接口显示出来太占屏幕,我们也可以删除某个不关心的类或接口,鼠标点击某个类或接口,按住delete键就会删除它。

我们删除了Cloneable、Serializable、RandomAccess接口,还有我们注意到上面有不同颜色和虚实线箭头,这些线是标注类与类、类与接口之间的关系。

蓝色实线箭头:类之间继承绿色实线箭头:接口之间继承绿色虚线箭头:类实现接口

有时候光看类继承结构图还不够,我们还想类中的方法,变量,构造器等等。
我们可以右键点击当前页面

在上图中,我们就可以选择显示变量、构造器、方法、属性、内部类。我们点击Fileds

这样我们就显示出该继承结构图中涉及的类或接口的变量,我们再点击构造器

这样也会把所有构造器显示出来,这对于我们想快速了解一个类内部结构非常快速,我们上面的操作也可以使用快速工具栏来完成。

我们还可以快速进入到变量或者方法的源码当中。我们双击某个类或接口,这时鼠标就会在其中游走,然后我们对某个方法选择Jump to Source,就可以进入源码当中

有时候我们觉得显示的图比较小,看不清楚,我们就可以使用放大镜功能,按住Alt键,鼠标移到哪就是放大镜。

有时候我们还想查看其他类是否和当前类有关系,我们就把其他类添加进来,
右键点击选择Add Class to Diagram...

弹出一个对话框

我们在类中输入类名,按回车即可。这里我输入Map接口

这样我们就知道ArrayList和Map没有关系(这里可能多此一举,本来就显示了当前类所有的继承结构图)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • IDEA添加Java类注释模版的方法

    本文介绍了IDEA添加Java类注释模版的方法,分享给大家,具体如下: IDEA版本:IntelliJ IDEA 2017.2.5 x64 eclipse能在类上方输入/**,回车添加类注释模版,但idea没有默认添加这个功能,需要做一些设置.下面介绍三种方法实现: 创建类默认添加类注释 手动添加类注释 批量添加JavaDoc注释 一.设置新建类默认添加注释 依次点击Setting|Editor|File and code templates,添加如图配置 例子: /** *describe:

  • 详细介绍idea如何设置类头注释和方法注释(图文)

    intellj idea的强大之处就不多说了,相信每个用过它的人都会体会到,但是我们也会被他的复杂搞的晕头转向,尤其刚从eclipse转过来的童鞋,相信刚开始的那段经历都是不堪回首的,我也是一步步这么走过来的. 今天讲的一个主题是如何实现类似eclipse的Code Templates那样的功能,进行文件级别的方法级别注释的实现. idea和eclipse的注释还是有一些差别的. idea: 类头注释:打开file->setting->Editor->Filr and Code Temp

  • IntelliJ IDEA中查看当前类的所有继承关系图

    在IntelliJ IDEA 中这个查看一个类也就是当前类的所有继承关系,包括实现的所有的接口和继承的类, 这个继承,不仅仅是一级的继承关系,包括好几层的继承.父类的父类的父类.直到最后. 可以很清楚明了的了解一个类的实现关系. diagram 英[ˈdaɪəgræm] 美[ˈdaɪəˌɡræm] n. 图表; 示意图; 图解; [数] 线图; vt. 图解; 用图表示; 下面看这个编辑器怎么以图解的形式,查看这种继承关系. (上面的是查看的Java源码的类的所有继承关系,最下面的这个是在查看s

  • Idea 无法引用类问题解决办法

    今天遇到一个最别坑的问题,就是我引入了一个lombok.jar包.这个Jar包中的其它类我都可以通过Alt+Enter来快速导入包,但是就其中一个@Data这个注解就是不行.我以为是版本问题,我就在build.gradle里面去改变这个Jar包的版本.结果还是不行.最后之前用Idea的同事也遇到过这个问题,过来帮我解决了这个问题.现在记录下来,希望也能够帮助遇到这样问题的朋友. 同一个包下的@ToString注解能够快捷导入,但是@Data就是不行. 可以通过以下方式来解决这个问题: 1. Se

  • idea 自动生成类注释和方法注释的实现步骤

    换电脑重新安装了idea,记录下添加自动注释的方法,以备后续使用 idea版本:2018.3.1 1. 生成类注释 打开setting -> Editor -> File and Code Templates -> Files -> Class 生成类注解模板 /** * @program: ${PROJECT_NAME} * @description: ${description} * @author ${USER} * @date ${YEAR}-${MONTH}-${DAY}

  • IDEA快速生成实体类的示例教程

    不多说,直接上步骤: ① idea左侧有个dataBase ② ③ 1处填写数据库连接的必要信息,填写完成后点击2可以测试你填的信息是否正确,没问题就点apply ④ 选择你要生成实体的对应的表,右键,生成的实体的属性是以驼峰命名的,例如sl_user表里有个字段叫user_id,那么生成的属性名就是userId ⑤ 选择你要把生成的实体类文件放在哪个包路径下 ⑥ 如果生成的类名不符合你所在项目的命名规则,可以ctrl+shift_R 重命名.生成的属性的属性类型有些不是自己想要的,可以选择属性

  • idea hibernate jpa 生成实体类的实现

    本篇博客记录下 IDEA 中连接数据库反转生成 Hibernate 实体和配置文件. 1. 打开 DataBase 窗口,添加数据源 到了这一步数据源已添加好. 2. 添加 hibernat 持久层支持,生成实体 Bean /配置文件,这一步要去plugs那里下载一个hibernate插件,不然你的persistence是出不来的 然后选择数据源,选择包,添加生成 Bean 的后缀,选择表,选择生成 xml 配置文件还是注解. OK,结束 如果你选择生成带 JPA 注解类,映射文件是可以省略的,

  • IDEA类和方法注释模板设置(非常详细)

    idea 模版之自定义类与方法注释 很多公司都有要求的代码注释规范,我们每新建类或者方法的时候从新复制粘贴很麻烦,而且容易粘错. 当然自定义模板还可以用到很多地方,比如系统自带的 sout就是system.out.print(); 当你输入某文本的时候,系统会自动替换成目标文本. 1定义java文件头部的注释 2给java类中的方法添加上注释 2.1第一步勾选Enable Live  Templates 2.2第二步新建一个Group 2.3第三步新建一个Template 2.4第四步点击Def

  • IDEA中查看类继承图和类源码的骚操作

    我们都知道IDEA这个开发工具非常好用,功能非常之多,今天在复习Java集合体系的时候,想查看某个类或接口的继承结构,然后就搜索一波,都是使用了IDEA Diagram的插件,这里也分享一下. 比如我写了这样一段代码 public class CollectionLearning { public static void main(String[] args) { List list = new ArrayList(); list.add("java"); list.add("

  • Android中图片压缩方案详解及源码下载

    Android中图片压缩方案详解及源码下载 图片的展示可以说在我们任何一个应用中都避免不了,可是大量的图片就会出现很多的问题,比如加载大图片或者多图时的OOM问题,可以移步到Android高效加载大图及多图避免程序OOM.还有一个问题就是图片的上传下载问题,往往我们都喜欢图片既清楚又占的内存小,也就是尽可能少的耗费我们的流量,这就是我今天所要讲述的问题:图片的压缩方案的详解. 1.质量压缩法 设置bitmap options属性,降低图片的质量,像素不会减少 第一个参数为需要压缩的bitmap图

  • 由浅入深讲解Javascript继承机制与simple-inheritance源码分析

    老生常谈的问题,大部分人也不一定可以系统的理解.Javascript语言对继承实现的并不好,需要工程师自己去实现一套完整的继承机制.下面我们由浅入深的系统掌握使用javascript继承的技巧. 1. 直接使用原型链 这是最简粗暴的一种方式,基本没法用于具体的项目中.一个简单的demo如下: function SuperType(){ this.property = true; } SuperType.prototype.getSuperValue = function(){ return th

  • java向文件中追加内容与读写文件内容源码实例代码

    java向文件中追加内容与读写文件内容源码实例代码 向文件尾加入内容有多种方法,常见的方法有两种: RandomAccessFile类可以实现随机访问文件的功能,可以以读写方式打开文件夹的输出流 public void seek(long pos)可以将读写指针移到文件尾,参数Pos表示从文件开头以字节为单位测量的偏移位置,在该位置文件指针. public void write(int pos)将数据写到读写指针后面,完成文件的追加.参数pos表示要写入的Byte 通过FileWrite打开文件

  • 深入理解Python虚拟机中复数(complex)的实现原理及源码剖析

    目录 复数数据结构 复数的操作 复数加法 复数取反 Repr 函数 总结 复数数据结构 在 cpython 当中对于复数的数据结构实现如下所示: typedef struct { double real; double imag; } Py_complex; #define PyObject_HEAD PyObject ob_base; typedef struct { PyObject_HEAD Py_complex cval; } PyComplexObject; typedef struc

  • Java编程删除链表中重复的节点问题解决思路及源码分享

    一. 题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 二. 例子 输入链表:1->2->3->3->4->4->5 处理后为:1->2->5 三. 思路 个人感觉这题关键是注意指针的指向,可以定义一个first对象(值为-1,主要用于返回操作后的链表),first.next指向head,定义一个last同样指向first(主要用于操作记录要删除节点的前一个节点),定义一个p指向head,指向当前节点.

  • Python中getpass模块无回显输入源码解析

    本文主要讨论了python中getpass模块的相关内容,具体如下. getpass模块 昨天跟学弟吹牛b安利Python标准库官方文档的时候偶然发现了这个模块.仔细一看内容挺少的,只有两个主要api,就花了点时间阅读了一下源码,感觉挺实用的,在这安利给大家. getpass.getpass(prompt='Password: ', stream=None) 调用该函数可以在命令行窗口里面无回显输入密码.参数prompt代表提示字符串,默认是'Password: '.在Unix系统中,strea

  • RxJava中map和flatMap的用法区别源码解析

    目录 前言: 作用 使用方法: map flatMap 源码分析 map flatMap 结语 前言: RxJava中提供了大量的操作符,这大大提高了了我们的开发效率.其中最基本的两个变换操作符就是map和flatMap.而其他变换操作符的原理基本与map类似. map和flatMap都是接受一个函数作为参数(Func1)并返回一个被观察者Observable Func1的< I,O >I,O模版分别为输入和输出值的类型,实现Func1的call方法对I类型进行处理后返回O类型数据,只是fla

  • asp.net开发中常见公共捕获异常方式总结(附源码)

    本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统一的处理风格,将异常信息优雅地反馈给开发人员和用户.我们都知道,.net的异常处理是按照"异常链"的方式从底层向高层逐层抛出,如果不能尽可能地早判断异常发生的边界并捕获异常,CLR会自动帮我们处理,但是这样系统的开销是非常大的,所以异常处理的一个重要原则是"早发现早抛出早处理&q

  • C++11中的智能指针shared_ptr、weak_ptr源码解析

    目录 1.前言 2.源码准备 3.智能指针概念 4.源码解析 4.1.shared_ptr解析 4.1.1.shared_ptr 4.1.2.__shared_ptr 4.1.3.__shared_count 4.1.4._Sp_counted_base 4.1.5._Sp_counted_ptr 4.1.6.shared_ptr总结 4.2.weak_ptr解析 4.2.1.weak_ptr 4.2.2.__weak_ptr 4.2.3.__weak_count 4.2.4.回过头看weak_

随机推荐