通过 varForamtter 将Class 转换为 mermaid 快速的查看类结构

通过 varForamtter 快速的查看类结构

开源技术栏
varFormatter 库不仅仅可以用于 类到json xml 的转换 还可以转换为 mermaid 图
今日有趣的技术小分享,类 结构,是在 编程 中很重要的,直观的查看结构 将会有利于我们了解类中的各个属性。

目录

文章目录

  • 通过 varForamtter 快速的查看类结构
    • 目录
    • 介绍
    • 开始操作
      • 编写代码
      • 查看结果

介绍

在 2024年 03 月 09 日之后发布的 1.0.1 以及以后的 varFormatter 版本中,我们可以直接通过 varFormatter 库来实现类结构的直观查看,首先,我们先来使用下面的依赖将 varFormatter 库引入进来!

<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>

开始操作

编写代码

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 格式是具有图结构的,在这里展示的就是图结构代码以及图。

Map>Map
Map>String/Number
Map>value
Map>String/Number
Map>value
Map>String/Number
Map>value
Map>String/Number
Map>value
Map>Object
Map>String/Number
Map>value
Map>Collection
Collection>String/Number
Collection>value
Collection>String/Number
Collection>value
Collection>String/Number
Collection>value
Collection>String/Number
Collection>value
Collection>Object
Map>String/Number
Map>value
Map>Object
Map>Object
Map>String/Number
Map>value
Map>Object
Map>String/Number
Map>value
TestObj
TestObj.data
TestObj.data.k1
123123
TestObj.data.k
123123
TestObj.name
zhao
TestObj.age
1024
TestObj.testObj2
TestObj.testObj2.name
zhao123
TestObj.testObj2.arrayList
TestObj.testObj2.arrayList.1
1
TestObj.testObj2.arrayList.2
2
TestObj.testObj2.arrayList.3
3
TestObj.testObj2.arrayList.4
4
TestObj.testObj2.arrayList.5
TestObj.testObj2.arrayList.5.serialVersionUID
7523967970034938905
TestObj.testObj2.arrayList.5.ttb
TestObj.testObj2.arrayList.5.wtb
TestObj.testObj2.arrayList.5.fastTime
1709991655080
TestObj.testObj2.arrayList.5.gcal
TestObj.testObj2.arrayList.5.defaultCenturyStart
0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「蓝桥·算法双周赛」第七场分级赛——小白入门赛

题目列表 说明 好久没打蓝桥杯的比赛&#xff0c;回来试试水&#xff0c;就开了第1、2、3一共三个题&#xff0c;第4题可惜了。1.thanks,mom【算法赛】 思路&#xff1a; 没什么好说的&#xff0c;但是当时比赛刚开始服务器有问题&#xff0c;基本提交的全WA了。#include <…

线程有几种状态,状态之间的流转是怎样的?

Java中线程的状态分为6种&#xff1a; 1.初始(NEW)&#xff1a;新创建了一个线程对象&#xff0c;但还没有调用start()方法。 2.运行(RUNNABLE)&#xff1a;Java线程中将就绪&#xff08;READY&#xff09;和运行中&#xff08;RUNNING&#xff09;两种状态笼统的称为“运行”…

数据库基础——mysql知识体系(掌握mysql,看完这篇文章就够了)

1.关系型数据库 关系型数据库是一种基于关系模型的数据库系统&#xff0c;将数据组织成表格的形式&#xff0c;表格由行和列组成&#xff0c;每行代表一个记录&#xff0c;每列代表一个属性。它使用结构化查询语言SQL进行数据管理和操作。 特点&#xff1a;1.数据的组织&…

【Azure 架构师学习笔记】- Azure Private Endpoint

本文属于【Azure 架构师学习笔记】系列。 前言 公有云的其中一个特点是默认允许公网访问&#xff0c; 这就对企业环境带来风险&#xff0c;也是很多年前企业对公有云抵触的其中一个原因&#xff0c;现在这类问题已经很少&#xff0c;因为有了很多技术来确保云上的资源被安全地…

HTML5:七天学会基础动画网页10

继续介绍3D转换: 3D转换:rotate3d 方法与说明 rrotateX(angle)otate3d(x,y,z,angle[角度]) 3D转换&#xff0c;正常取值0/1&#xff0c;0代表当前轴线不进行旋转&#xff0c;1反之&#xff0c;例:rotate3d(1,1,1,30deg)&#xff0c;代表三个轴线都要旋转30度 rotate3d(0…

小程序添加悬浮在线客服源码

部分代码片段&#xff1a; wxml: <button plaintrueopen-type"share" class"ymym"> <image modeaspectFill src../../static/fx.png classymimage></image> </button> 源码获取方式&#xff1a;搜一搜 万能工具箱合集 然后点击 资…

论文目录3:大模型时代(2023+)

1 instruction tuning & in context learning 论文名称来源主要内容Finetuned Language Models Are Zero-Shot Learners2021 机器学习笔记&#xff1a;李宏毅ChatGPT Finetune VS Prompt_UQI-LIUWJ的博客-CSDN博客 早期做instruction tuning的work MetaICL: Learning to …

HTML 学习笔记(九)颜色值和长度单位

一、颜色 1.通过RGB值来设置颜色 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>table</title&…

如何设计自动化测试框架

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 关于测试框架的好处&#xff0c;比如快速回归提高测试效率&…

⎣模型⎤Claude3——给奥特曼一点点压力!

微信公众号|人工智能技术派 作 者|hws Claude系列模型是由美国创业公司Anthropic基于transformer架构研发&#xff0c;该公司是一群在2021年OpenAI离职员工(包括前首席科学家Ilya Sutskever和Dario Amodei)创建的。Anthropic先前已发布Claude1和Claude2&#xff0c;效果相当不错…

XPath表达式学习

XPath表达式学习是写UI自动化关键的一步 学习渠道而言w3school肯定是最好的教程 获取控件XPath路径的工具 名称平台介绍uiautomatorviewerAndorid只能直接生成xpah,需要自己拼凑Appium InspectorAndorid iOS只能在mac上用app-insecptorAndorid iOSmacaca的生态工具 常见用法 …

【数据分享】2000-2022年全国1km分辨率的逐日PM10栅格数据

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年全国范围逐日的PM2.5栅格数据和2013-2022年全国范围逐日SO2栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;。 本次我们给大家带来的是2000-2022年全国范围的逐日的PM10栅…

【论文阅读】关于智能合约的漏洞检测

两篇论文&#xff0c;都是关于智能合约漏洞检测的综述文章 [1]崔展齐,杨慧文,陈翔等.智能合约安全漏洞检测研究进展[J/OL].软件学报:1-33[2024-03-05].https://doi.org/10.13328/j.cnki.jos.007046. [2]王丹,黄松,王兴亚.以太坊智能合约测试研究综述[J].信息技术与信息化,2023(…

算法设计与分析(超详解!) 第一节 算法概述

1.算法的定义 算法的非形式化定义&#xff1a;算法是规则的有限集合&#xff0c;是为解决特定问题而规定的一系列操作。 可以理解为&#xff1a;算法&#xff08;algorithm&#xff09;是指在解决问题时&#xff0c;按照某种机械的步骤一定可以得到问题的结果&#xff08;有的…

【黑马程序员】STL实战--演讲比赛管理系统

文章目录 演讲比赛管理系统需求说明比赛规则程序功能 创建管理类功能描述创建演讲比赛管理类 菜单功能添加菜单成员函数声明菜单成员函数实现菜单功能测试 退出功能添加退出功能声明退出成员函数实现退出功能测试 演讲比赛功能功能分析创建选手类比赛成员属性添加初始化属性创建…

iOS小技能:设置app语言(跟随系统和特定语言)

文章目录 引言I 读取本地化字符串的方式1.1 设置当前语言工具类(封装读取本地化字符串)1.2 获取系统语言环境1.3 跟随系统1.4 根据特定bundle读取本地化字符串II 设置app语言2.1 设置语言2.2 语言切换界面2.3 重新加载所有界面以更新语言2.4 资源文件III 案例:登录界面切换中…

数据分析-Pandas最简单的方法画矩阵散点图

数据分析-Pandas直接画矩阵散点图 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&…

有点炫酷有点diao的免费wordpress模板主题

这是一款经典的免费wordpress主题&#xff0c;被广泛应用于多个行业的网站。 https://www.wpniu.com/themes/189.html

在Ubuntu 20.04中设置开机自启动脚本

这里写目录标题 1. 在Ubuntu 20.04中设置开机自启动脚本2. 取消上面的命令 1. 在Ubuntu 20.04中设置开机自启动脚本 在Ubuntu 20.04中设置开机自启动脚本&#xff0c;您可以使用systemd服务来实现。下面是如何将您的脚本设置为开机自启动的步骤&#xff1a; 创建systemd服务文…

vulhub中Weblogic < 10.3.6 ‘wls-wsat‘ XMLDecoder 反序列化漏洞(CVE-2017-10271)复现

Weblogic的WLS Security组件对外提供webservice服务&#xff0c;其中使用了XMLDecoder来解析用户传入的XML数据&#xff0c;在解析的过程中出现反序列化漏洞&#xff0c;导致可执行任意命令。 访问http://your-ip:7001/即可看到一个404页面&#xff0c;说明weblogic已成功启动 …