# 通过 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 星期六
事件描述备注:保存/发布
中国 天津
[](如果不需要此记录可以手动删除,每次保存都会自动的追加记录)