# 通过 varForamtter 数据格式化 转换 技术 快速的查看类结构 *开源技术栏* 今日有趣的技术小分享,类 结构,是在 编程 中很重要的,直观的查看结构,有利于我们了解类中的各个属性。 ## 目录 [TOC] ## 介绍 在 2024年 03 月 09 日之后发布的 1.0.1 以及以后的 varFormatter 版本中,我们可以直接通过 varFormatter 库来实现类结构的直观查看,首先,我们先来使用下面的依赖将 varFormatter 库引入进来! ```xml <dependencies> <!-- 引入库的依赖 --> <dependency> <groupId>io.github.BeardedManZhao</groupId> <artifactId>varFormatter</artifactId> <version>1.0.1</version> </dependency> <!-- 引入库所需要的工具类 --> <dependency> <groupId>io.github.BeardedManZhao</groupId> <artifactId>zhao-utils</artifactId> <version>1.0.20240121</version> </dependency> </dependencies> ``` ## 开始操作 ### 编写代码 ```java package top.lingyuzhao; import top.lingyuzhao.varFormatter.core.Formatter; import top.lingyuzhao.varFormatter.core.VarFormatter; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; /** * 测试类 * * @author zhao */ public class MAIN { public static void main(String[] args) { // 使用单例模式 获取到 MERMAID 格式化组件 final Formatter formatter0 = VarFormatter.MERMAID.getFormatter(true); // 将对象进行格式化操作 获取到对象的 MERMAID 结构图的代码 并打印出来 System.out.println("graph LR"); System.out.println(formatter0.format(new TestObj())); } // 准备了一个复杂的类 static class TestObj { String name = "zhao"; int age = 1024; HashMap<String, Object> data = new HashMap<>(); TestObj2 testObj2 = new TestObj2(); { data.put("k", 123123); data.put("k1", "123123"); } public static class TestObj2 { String name = "zhao123"; ArrayList<Object> arrayList = new ArrayList<>(); { arrayList.add(1); arrayList.add(2); arrayList.add(3); arrayList.add(4); // 这里使用了一个 Date 类 增大 类的复杂度 arrayList.add(new Date()); } } } } ``` ### 查看结果 Mermaid 是一种图结构的格式化组件,它能够将任意的类结构转换为 Mermaid 格式的文本,Mermaid 格式是具有图结构的,在这里展示的就是图结构代码以及图。 ```mermaid graph LR TestObj==Map>Map==>TestObj.data TestObj.data==Map>String/Number==>TestObj.data.k1 TestObj.data.k1--Map>value-->TestObj.data.k1v{"123123"} TestObj.data==Map>String/Number==>TestObj.data.k TestObj.data.k--Map>value-->TestObj.data.kv{"123123"} TestObj==Map>String/Number==>TestObj.name TestObj.name--Map>value-->TestObj.namev{"zhao"} TestObj==Map>String/Number==>TestObj.age TestObj.age--Map>value-->TestObj.agev{"1024"} TestObj==Map>Object==>TestObj.testObj2 TestObj.testObj2==Map>String/Number==>TestObj.testObj2.name TestObj.testObj2.name--Map>value-->TestObj.testObj2.namev{"zhao123"} TestObj.testObj2==Map>Collection==>TestObj.testObj2.arrayList TestObj.testObj2.arrayList==Collection>String/Number==>TestObj.testObj2.arrayList.1 TestObj.testObj2.arrayList.1--Collection>value-->TestObj.testObj2.arrayList.1v(("1")) TestObj.testObj2.arrayList==Collection>String/Number==>TestObj.testObj2.arrayList.2 TestObj.testObj2.arrayList.2--Collection>value-->TestObj.testObj2.arrayList.2v(("2")) TestObj.testObj2.arrayList==Collection>String/Number==>TestObj.testObj2.arrayList.3 TestObj.testObj2.arrayList.3--Collection>value-->TestObj.testObj2.arrayList.3v(("3")) TestObj.testObj2.arrayList==Collection>String/Number==>TestObj.testObj2.arrayList.4 TestObj.testObj2.arrayList.4--Collection>value-->TestObj.testObj2.arrayList.4v(("4")) TestObj.testObj2.arrayList==Collection>Object==>TestObj.testObj2.arrayList.5 TestObj.testObj2.arrayList.5==Map>String/Number==>TestObj.testObj2.arrayList.5.serialVersionUID TestObj.testObj2.arrayList.5.serialVersionUID--Map>value-->TestObj.testObj2.arrayList.5.serialVersionUIDv{"7523967970034938905"} TestObj.testObj2.arrayList.5==Map>Object==>TestObj.testObj2.arrayList.5.ttb TestObj.testObj2.arrayList.5==Map>Object==>TestObj.testObj2.arrayList.5.wtb TestObj.testObj2.arrayList.5==Map>String/Number==>TestObj.testObj2.arrayList.5.fastTime TestObj.testObj2.arrayList.5.fastTime--Map>value-->TestObj.testObj2.arrayList.5.fastTimev{"1709991655080"} TestObj.testObj2.arrayList.5==Map>Object==>TestObj.testObj2.arrayList.5.gcal TestObj.testObj2.arrayList.5==Map>String/Number==>TestObj.testObj2.arrayList.5.defaultCenturyStart TestObj.testObj2.arrayList.5.defaultCenturyStart--Map>value-->TestObj.testObj2.arrayList.5.defaultCenturyStartv{"0"} ```  ------ ***操作记录*** 作者:[LY小助手](https://www.lingyuzhao.top//index.html?search=18 "LY小助手") 操作时间:2024-03-09 21:48:26 星期六 事件描述备注:保存/发布 中国 天津 [](如果不需要此记录可以手动删除,每次保存都会自动的追加记录)