专栏首页Java进阶指南怎么用IDEA快速查看类图关系?

怎么用IDEA快速查看类图关系?

做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 的方式吧。(这也是一种很合理的方式)

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

本文分享自微信公众号 - 烟雨星空(mistyskys),作者:烟雨星空

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 类加载机制你真的了解吗?

    之前在介绍JVM内存模型的时候(参看:了解JVM内存模型),提到了在运行时数据区之前,有个Class Loader,这个就是类加载器。用以把Class文件中的描...

    烟雨星空
  • 深入理解字符串常量池

    在JVM中,为了减少字符串对象的重复创建,维护了一块特殊的内存空间,这块内存就被称为字符串常量池。

    烟雨星空
  • linux 连个文件都删除不了,什么鬼!

    最近不是redis 6.0 出了吗,官网介绍最新稳定版本是 6.0.3 。于是,我就准备在自己的破小服务器上安装一下。于是,出现了后续的糟心事 (linux 下...

    烟雨星空
  • Java的常量接口思考,项目中的常量是放在接口里还是放在类里呢?

    最近在看一本书 Java与模式,里面提了一句不建议使用常量接口,甚至举了个java源码的反例,

    ydymz
  • postgreSQL窗口函数总结

    1、我们都知道在SQL中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少...

    小徐
  • postgreSQL窗口函数总结

    1、我们都知道在SQL中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少...

    小徐
  • 面试题38(关于集合的理解?)

    实现或继承了Collection接口的是? A Map B List C Vector D Iterator E Set 考点:考察求职者对集合框架的理解 出...

    Java学习
  • 大数据入门与实战-Hive 常见SQL、技巧与问题

    SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。

    致Great
  • Git基础知识(八)--变基

    你在查看一个经过变基的分支的历史记录时会发现,尽管实际的开发工作是并行的,但它们看上去就像是串行的一样,提交历史是一条直线没有分叉。

    zx钟
  • python菜鸟教程 | if elif else 判断

    上一讲主要学习了 if else 内容,本讲将要学习最后一个语句 elif(else if)。

    week

扫码关注云+社区

领取腾讯云代金券