做Java开发的,现在普遍都用上idea了。可以说,idea是当之无愧的Java开发神器。如果,你现在还没用idea,那肯定是你还没有感受过它的强大。

好了,话不多说,今天的主题主要是教大家怎么通过idea快速的查看一个类的类图关系,即一个类继承了哪些类,实现了哪些接口,以及接口有哪些子接口和实现类。

一、类关系

以一个阻塞队列LinkedBlockingQueue为例:

1)通过 Ctrl+Shift+N 找到这个类。

2)进到类里,在类名上面右键单击,选择 Diagrams -> Show Diagram 。(当然也可以选择第二个Popup,不过是以弹窗的形式展现的类图)

3)这样,就可以看到当前类的完整类图关系。当然,如果类图比较复杂,电脑看不全,可以放大窗口,然后选择下边这个自适应按钮,自适应内容。

二、接口关系

此外,如果想看接口有哪些实现类,可以在类图上边的某个接口单击右键选择 Show Implementations。 以 BlockingQueue为例。

可以看到,会展示当前接口所有的子接口和实现类。(我这里边显示多了个1,不知道是什么鬼,点击也没反应,不管啦,没啥影响)

如果,想把所有子接口和实现类添加到类图上面,可以Ctrl+A全选。但是,不建议这样做。因为,类图关系肯定会非常复杂,一下子添加进去几十个类,根本就看不清,而且也没必要。我就不演示了,感兴趣的自己可以试一下。

一般都是选择自己感兴趣的类查看。所以,这里我就选择另外一个比较常用的ArrayBlockingQueue。类图就变成以下这个样子。

此外,还有一种方式可以查看接口的所有实现类。在图中的某个类上边单击一下,然后 Ctrl + H,调出类层级关系。如图,选择这个按钮,显示所有子接口和实现类。上边也会有一行小字提示。

然后,可以选择多个子类和实现类,看他们的类图关系。比如,图中我选中了四个。
Diagrams -> Show Diagram

再选择第一个Java Class Diagrams ,

但是,注意,这种方式,会打开一个新的类图关系,而不是在原来的类图上边新增。

如果,想在原来的类图扩展,还是老老实实用 Show Implementations 的方式吧。(这也是一种很合理的方式)

看完了,是不是感觉非常简单呢,赶紧实操一下吧。

如果本文对你有用,欢迎点赞,评论,转发。
学习是枯燥的,也是有趣的。我是「烟雨星空」,欢迎关注,可第一时间接收文章推送。

怎么用IDEA快速查看类图关系的更多相关文章

  1. IDEA 查看类图功能(分析源码的利器)

    引言 做过项目开发的童靴,应该会有这样的经历,就是刚进公司领导二话不说直接丢个项目,而且没有任何文档,让熟悉一下,一两周就让上手写代码.打开项目后就看到一堆类源码,完全不知道从何处入手,应该如何分析项 ...

  2. UML类图关系全面剖析

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

  3. 我对uml类图关系的理解

    uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...

  4. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...

  5. 图解六大UML类图关系

    在学习UML类图的过程中,UML类图关系是必须要掌握的问题,UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. UML类图关系简介 依赖(Dependen ...

  6. UML类图关系大全

    UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法.在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设 ...

  7. UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

  8. UML类图关系-转

    1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来 ...

  9. UML类图关系大全-转

    1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来 ...

随机推荐

  1. Jenkins Job构建

    Jenkins job介绍 ​ Jenkins Freestyle与Pipeline Job区别 ​ ​ Jenkins Job构建配置 一 .环境准备 1.配置Jenkins server本地Git ...

  2. 【Java并发基础】使用“等待—通知”机制优化死锁中占用且等待解决方案

    前言 在前篇介绍死锁的文章中,我们破坏等待占用且等待条件时,用了一个死循环来获取两个账本对象. // 一次性申请转出账户和转入账户,直到成功 while(!actr.apply(this, targe ...

  3. 对于kvm配置ssh

    首先我们要让自己的机器开启ssh服务 首先更新源 sudo apt-get update 安装ssh服务 sudo apt-get install openssh-server 检测是否已启动 ps ...

  4. Python里使用转义字符\r时遇到的问题

    在Pycharm里使用转义字符\r和在IDLE里使用\r产生的结果是不一样的. 例子如下: print("你好!\r我是Python!") 输出结果为: 我是Python! 前面的 ...

  5. 利用Python进行博客图片压缩

    自己写博客的时候常常要插入一些手机拍的照片,都是几M的大小,每张手动压缩太费事了,于是根据自己博客的排版特点用Python写了一个简单的图片压缩脚本,功能是将博客图片生成缩略图,横屏的图片压缩为宽度最 ...

  6. 一次完整的OCR实践记录

    一.任务介绍 这次的任务是对两百余张图片里面特定的编号进行识别,涉及保密的原因,这里就不能粘贴出具体的图片了,下面粘贴出一张类似需要识别的图片. 假如说我的数据源如上图所示,那么我需要做的工作就是将上 ...

  7. java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"

    问题描述 今天在使用SpringBoot整合spring security,使用内存用户验证,但无响应报错:java.lang.IllegalArgumentException: There is n ...

  8. java正则使用全记录!

    一 开坑! 场景: 将动态uri中{} 替换成 至少出现一次的任意字符进行匹配, 比如 loclahost:8080/{name}/{9527}  -> localhost:8080/.{1,} ...

  9. Spring-cloud微服务实战【七】:服务熔断与降级hystrix

      在之前的文章中,我们先后介绍了eureka,ribbon,feign,使用eureka集群的方式来保证注册中心的高可用,在eureka中使用ribbon进行负载均衡,使用feign接口替换手动编码 ...

  10. Kubernetes-Ingress资源详解

    什么是Ingress #阿里云称之为ingress路由!在 Kubernetes 集群中,主要用于接入外部请求到k8s内部,Ingress是授权入站连接到达集群服务的规则集合,为您提供七层负载均衡能力 ...