#+title: Java Class 可视化 #+date: <2022-11-16 Wed 10:33> #+author: thebesttv - [[https://www.jetbrains.com/help/idea/class-diagram.html][IDEA Doc: UML class diagrams]] 竟然有如此方便的东西, 太棒了. * Hierarchy of Classes Within a Package Tai-e 中的 =pascal.taie.ir.exp.Exp= 接口代表一个表达式, 子接口有 =LValue= 和 =RValue=. 变量 (=Var=) 既是左值也是右值, 而 =BinaryExp= (如 =a+b=) 等只能作为右值. 现在, 假设我想要知道都有哪些表达式 (哪些类实现了 =Exp=), 这些表达式哪些是左值 (实现了 =LValue=), 哪些是右值 (实现了 =RValue=). 首先搜索 =Exp= 类, 进入对应文件, 然后 Ctrl 并单击 package 名, 找到 =pascal.taie.ir.exp= 所在位置. 可以看到里面有 =BinaryExp=, =CastExp= 等不同的类. {{{image(80)}}} [[./class-diagrams/class-hierarchy-1.png]] 然后右键对应的 package (即 =pascal.taie.ir.exp=), 找到 Diagrams \to Show Diagram (如果只是临时稍微看一下, 也可以选择 Show Diagram Popup). {{{image(80)}}} [[./class-diagrams/class-hierarchy-2.png]] 再选择 Java classes diagram {{{image(50)}}} [[./class-diagrams/class-hierarchy-3.png]] 然后就可以啦~ {{{image(100)}}} [[./class-diagrams/class-hierarchy-4.png]] 可能只能显示某个 package 下的类, 不能显示所有的, 不过一般问题不大.