使用IntelliJ IDEA查看类的继承关系图形

1、查看图形形式的继承链

在你想查看的类的标签页内,点击右键,选择 Diagrams,其中有 show 和 show … Popup,只是前者新建在标签页内,后者以浮窗的形式展示:

实际上,你也可以从左边的项目目录树中,对你想查看的类点击右键,同样选择Diagrams,效果是一样的:

然后你就会得到如下图所示的继承关系图形,以自定义的Servlet为例:

显而易见的是:

  • 蓝色实线箭头是指继承关系
  • 绿色虚线箭头是指接口实现关系

2、优化继承链图形,想我所想

2.1 去掉不关心的类

得到的继承关系图形,有些并不是我们想去了解的,比如上图的Object和Serializable,我们只想关心Servlet重要的那几个继承关系,怎么办?

简单,删掉。点击选择你想要删除的类,然后直接使用键盘上的delete键就行了。清理其他类的关系后图形如下:

2.2 展示类的详细信息

有人说,诶,这怎么够呢,那继承下来的那些方法我也想看啊?简单,IDEA通通满足你。

在页面点击右键,选择 show categories,根据需要可以展开类中的属性、方法、构造方法等等。当然,第二种方法也可以直接使用上面的工具栏:

使用IntelliJ IDEA查看类的继承关系图形

然后你就会得到:

使用IntelliJ IDEA查看类的继承关系图形

什么,方法里你还想筛选,比如说想看protected权限及以上范围的?简单,右键选择 Change Visibility Level,根据需要调整即可。

什么,你嫌图形太小你看不清楚?IDEA也可以满足你,按住键盘的Alt,竟然出现了放大镜,惊不惊喜,意不意外?

使用IntelliJ IDEA查看类的继承关系图形

2.3 加入其他类到关系中来

当我们还需要查看其他类和当前类是否有继承上的关系的时候,我们可以选择加其加入到当前的继承关系图形中来。

在页面点击右键,选择 Add Class to Diagram,然后输入你想加入的类就可以了:

例如我们添加了一个Student类,如下图所示。好吧,并没有任何箭头,看来它和当前这几个类以及接口并没有发生什么不可描述的关系:

使用IntelliJ IDEA查看类的继承关系图形

2.4 查看具体代码

如果你想查看某个类中,比如某个方法的具体源码,当然,不可能给你展现在图形上了,不然屏幕还不得撑炸?

但是可以利用图形,或者配合IDEA的structure方便快捷地进入某个类的源码进行查看。

双击某个类后,你就可以在其下的方法列表中游走,对于你想查看的方法,选中后点击右键,选择 Jump to Source:

使用IntelliJ IDEA查看类的继承关系图形

在进入某个类后,如果还想快速地查看该类的其他方法,还可以利用IDEA提供的structure功能:

使用IntelliJ IDEA查看类的继承关系图形

选择左侧栏的structure之后,如上图左侧会展示该类中的所有方法,点击哪个方法,页面内容就会跳转到该方法部分去。

3、最后

用上面提到的的IDEA这些功能,学习和查看类关系,了解诸如主流框架源码之类的东西,可以说是非常舒服了。

4、参考链接

Original: https://www.cnblogs.com/liaojie970/p/9361694.html
Author: 山高我为峰
Title: 使用IntelliJ IDEA查看类的继承关系图形

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547457/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 带下划线_的变量或函数命名,带下划线的方法

    python中的标识符可以包含数字、字母和_,但必须以字母或者_开头,其中以_开头的命名一般具有特殊的意义 单前置下划线的名字:《流畅的python》作者称之为”受保护…

    技术杂谈 2023年7月25日
    066
  • 【转】Xcode插件管理工具Alcatraz

    Original: https://www.cnblogs.com/wi100sh/p/13093073.htmlAuthor: wi100shTitle: 【转】Xcode插件管…

    技术杂谈 2023年6月1日
    0109
  • 怎么有效解决“未能创建 SSL/TLS 安全通道”异常

    之前写了一个服务自动程序,程序会访问第三方的一个https接口,一直用的好好的,今天突然报错了,异常就发生在访问接口的地方,”请求被中止,未能创建 SSL/TLS 安全…

    技术杂谈 2023年5月31日
    0241
  • C++ 标准库 std::atomic 及 std::memory_order

    C++ 标准库提供了原子操作。(我已经懒得写序言了) ==================================== 先来说原子操作的概念: 原子操作是多线程当中对资源进…

    技术杂谈 2023年6月21日
    0104
  • Ubuntu16桌面版编译和安装OpenCV4

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kuberne…

    技术杂谈 2023年7月11日
    089
  • Rust: Tcp编程Demo

    最基本的Hello World示例: TcpServer端: cpp;gutter:true; use std::{net::TcpListener, io::{Read, Wri…

    技术杂谈 2023年5月31日
    0104
  • Kafka 生产者

    一个消息系统说白了无非就是由三部分组成,不同的消息系统只是这三部分的实现不同,或者会在这三部分之外扩充自己的特性。这三部分分别就是:生产者、消费者、消息队列 这篇文章主要介绍的是 …

    技术杂谈 2023年7月24日
    0100
  • 编译器LLVM-MLIR-Intrinics-llvm backend-instruction

    编译器LLVM-MLIR-Intrinics-llvm backend-instruction 参考文献链接 https://mp.weixin.qq.com/s/G36IllLO…

    技术杂谈 2023年5月31日
    099
  • Docker容器网络

    Docker容器网络 1、Docker容器网络 Docker在安装后自动提供3种网络,可以使用`docker network ls命令查看 [root@localhost ~]# …

    技术杂谈 2023年6月21日
    0116
  • 23种设计模式之迭代器模式

    文章目录 概述 迭代器模式的优缺点 迭代器模式的结构和实现 * 模式结构 模式实现 总结 ; 概述 迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟…

    技术杂谈 2023年7月24日
    0110
  • Html 鼠标滑过展示内容方案1_使用Css控制

    一、Html前端鼠标滑过控制内容展示 方案1,使用Hover伪类控制元素内部展示和隐藏 一般遇到会遇到问题的代码如下,初学者常遇到: 1.弹出层在z轴顺序问题,z-index 2….

    技术杂谈 2023年6月1日
    0108
  • 和身边的人搭伴学

    互为磨刀石 互相挑毛病。前提是双方都非常信任彼此,因为搞软件大多容易沉浸在自己的问题里,又不太善于做高情商的表达。一遇到沟通问题,一句话说不好就会引发误会。 有了信任的伙伴,你就不…

    技术杂谈 2023年7月25日
    085
  • ORACLE数据恢复方法(提交事务也可以)

    今天在操作数据库的时候,发现数据操作错误,想要恢复,但是没有用事务,按理说,设置成不默认提交事务,此时所做的各种操作都没有反应到数据库中。这时,你可以rollback事务,撤销所有…

    技术杂谈 2023年5月31日
    096
  • 操作系统第一、二章错题

    操作系统第一、二章错题 ​ A就不解释了,用过服务器的都明白。UNIX操作系统采用以全局变量为中心的模块结构,所以导致系统结构较为复杂,表现出来就是模块间的循环调用和文件之间的全局…

    技术杂谈 2023年7月11日
    079
  • StringUtils工具类

    1、 public static boolean isEmpty(String str) 判断某字符串是否为空 3、public static boolean isBlank(St…

    技术杂谈 2023年7月11日
    0104
  • 采挖九里香树桩,牢记移植这4点,爱成活长得旺

    前言:笔者在4月23日、28日的文章中介绍了九里香树桩的养坯、造型制作方法。随着秋分、霜降即将到来,喜欢树桩的北方盆友对采挖、栽植九里香生桩的流程仍有疑问,所以本期文章与盆友们共同…

    技术杂谈 2023年5月31日
    0162
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球