API文档转实体类脚本

工作遇到接口文档实体类内容很多,就写了一个简单的脚本,在此记录一下

//根据 接口文档栏位项目名称	中文名称	补充说明 生成XMLmodel类//每行以$$$开头 第一列为$$$public static void generateCommonApiModel(String str) {int indexOfPP = 0;//每行开头String linePrefix = "$$$";//字段名过滤的字符String varNameSkipStr = "[..]";//截取的列int [] contentIndexes = new int[]{1,2,3};String rstContent = "";while (str.indexOf(linePrefix, indexOfPP) > -1) {//截取下一个..和当前..中间的内容,以及最后一个..以后的内容int currPP = str.indexOf(linePrefix, indexOfPP);String line;if (currPP + linePrefix.length() < str.length()) {int nextPP = str.indexOf(linePrefix, currPP + linePrefix.length());if (nextPP > 0) {line = str.substring(currPP + linePrefix.length(), nextPP);indexOfPP = nextPP;} else {//最后一个line = str.substring(currPP + linePrefix.length());indexOfPP = str.length()-1;}} else {//最后一个line = str.substring(currPP + linePrefix.length());indexOfPP = str.length()-1;}String[] cells = line.split("[\t]");//@XmlElement(name = "Cur_SbmTm")//    private String curSbmTm;String content ="/**\n";content += " * "+cells[contentIndexes[1]];if (cells.length > contentIndexes[2]) {for (int i = contentIndexes[2]; i < cells.length; i ++) {content += "  "+cells[i].replaceAll("\n", "");}}content+= "\n */\n";String varName = cells[contentIndexes[0]].replaceAll(varNameSkipStr, "");content += "@XmlElement(name = \""+varName+"\")\n";content +="@XmlJavaTypeAdapter(CDataAdapter.class)\n";content += "private String "+ StringUtils.toCamelCase(varName) +";";content +="\n";rstContent += content;System.out.print("");}System.out.println(rstContent);}public static void main(String[] args) {String str = "$$$\tname\t姓名\t客户姓名\n" +"$$$\tage\t年龄\t客户年龄\n" +"$$$\tweight\t体重\t客户体重\n" +"$$$\theight\t身高\t客户身高\n";generateCommonApiModel(str);}

输出:

/**
 * 姓名  客户姓名
 */
@XmlElement(name = "name")
@XmlJavaTypeAdapter(CDataAdapter.class)
private String name;
/**
 * 年龄  客户年龄
 */
@XmlElement(name = "age")
@XmlJavaTypeAdapter(CDataAdapter.class)
private String age;
/**
 * 体重  客户体重
 */
@XmlElement(name = "weight")
@XmlJavaTypeAdapter(CDataAdapter.class)
private String weight;
/**
 * 身高  客户身高
 */
@XmlElement(name = "height")
@XmlJavaTypeAdapter(CDataAdapter.class)
private String height;

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

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

相关文章

Request 爬虫的 SSL 连接问题深度解析

SSL 连接简介 SSL&#xff08;Secure Sockets Layer&#xff09;是一种用于确保网络通信安全性的加密协议&#xff0c;广泛应用于互联网上的数据传输。在数据爬取过程中&#xff0c;爬虫需要与使用 HTTPS 协议的网站进行通信&#xff0c;这就牵涉到了 SSL 连接。本文将深入研究…

【追求卓越03】数据结构--链表练习题

引导 链表是我们工作和面试的中常常会遇到的知识点&#xff0c;只有长时间的练习和思考才能游刃有余。故总结以下几个比较经典的链表题和对应的代码&#xff0c;进行参考。 链表的反转 思路&#xff1a; 将链表遍历&#xff0c;将每个节点拷贝一份&#xff0c;之后再将所有的…

向日葵x华测导航:远程控制如何助力导航测绘设备运维

导航测绘在各个领域均在发挥积极作用&#xff0c;其中RTK载波相位差分技术是导航测绘领域所常用的主流技术&#xff0c;该技术基于卫星定位系统的基础定位数据&#xff0c;可以实现在野外实时获取厘米级精度的定位数据&#xff0c;一定程度上省去了事后解算的麻烦。相应的&…

XSLVGL2.0 User Manual 外设管理器(v2.0)

XSLVGL2.0 开发手册 XSLVGL2.0 User Manual 外设管理器 1、概述2、特性3、APIs3.1、xs_peripherals_listen3.2 xs_peripherals_unlisten3.3、xs_peripherals_register_prepost3.4 xs_peripherals_unregister_prepost3.5 xs_peripherals_access3.6、xs_peripherals_set_valid_t…

(论文阅读46-50)图像描述2

46.文献阅读笔记 简介 题目 Learning a Recurrent Visual Representation for Image Caption Generation 作者 Xinlei Chen, C. Lawrence Zitnick, arXiv:1411.5654. 原文链接 http://www.cs.cmu.edu/~xinleic/papers/cvpr15_rnn.pdf 关键词 2014年rnn图像特征和文本特…

验证码 | 可视化一键管控各场景下的风险数据

目录 查看今日验证数据 查看未来趋势数据 验证码作为人机交互界面经常出现的关键要素&#xff0c;是身份核验、防范风险、数据反爬的重要组成部分&#xff0c;广泛应用网站、App上&#xff0c;在注册、登录、交易、交互等各类场景中发挥着巨大作用&#xff0c;具有真人识别、身…

Leo赠书活动-10期 【AIGC重塑教育 AI大模型驱动的教育变革与实践】文末送书

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

新手做抖店,这6点建议一定要收好,能让你不亏钱!

我是电商珠珠 我呢&#xff0c;目前身居郑州。 电商这个行业也做了5年多了&#xff0c;抖店从20年开始做&#xff0c;到现在也已经快3年了。 其实&#xff0c;我做抖店期间呢&#xff0c;踩过很多坑&#xff0c;所以今天就把我所踩过的坑&#xff0c;给做抖店的新手总结了6点…

QT mysql 数据库线程池 与数据库操作封装

最近事情比较多很久没有写学习笔记了&#xff0c;数据库线程池&#xff0c; 数据库封装&#xff0c;虽说数据库操作有很多不需要写sql 的&#xff0c;ORM 封装的方式去操作数据库。但是从业这些年一直是自己动手写sql &#xff0c;还是改不了这个习惯。不说了直接上代码。 数据…

【23真题】劝退211!今年突变3门课!

今天分享的是23年云南大学847&#xff08;原827&#xff09;的考研试题及解析。同时考SSDSP的院校做一个少一个&#xff0c;珍惜&#xff01;同时考三门课的院校&#xff0c;复习压力极大&#xff0c;但是也会帮大家劝退很多人&#xff0c;有利有弊&#xff0c;请自行分析~ 本…

YOLOv5 环境搭建

YOLOv5 环境搭建 flyfish 环境 Ubuntu20.04 驱动、CUDA Toolkit、cuDNN、PyTorch版本对应 1 NVIDIA驱动安装 在[附加驱动界]面安装驱动时&#xff0c;需要输入安全密码&#xff0c;需要记下&#xff0c;后面还需要输入这个密码 重启之后有的机器会出现 perform mok manage…

二十三种设计模式-解密状态模式:优雅地管理对象状态

在软件开发中&#xff0c;经常会遇到需要根据对象的状态来改变其行为的情况。传统的实现方式可能涉及到大量的条件语句或者使用标志位来跟踪状态&#xff0c;导致代码复杂、难以维护。 而状态模式&#xff08;State Pattern&#xff09;可以提供一种优雅且灵活的解决方案&#…

Android修行手册-溢出父布局的按钮实现点击

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

【EI会议征稿】第五届人工智能、网络与信息技术国际学术会议(AINIT 2024)

第五届人工智能、网络与信息技术国际学术会议&#xff08;AINIT 2024&#xff09; 2024 5th International Seminar on Artificial Intelligence, Networking and Information Technology 第五届人工智能、网络与信息技术国际学术会议&#xff08;AINIT 2024&#xff09;将于…

Java File

SpringBoot get file path 通過ClassLoader獲得class path&#xff0c;Debug 或者 Release 不同。 加載Bean file ImportResource(locations {“classpath:bean-spring.xml”}) get file Value(“classpath:data/input.txt”) private Resource inputResource; ClassPat…

MongoDB——golang操作(链接,CURD,聚合)

MongoDB golang操作 中文文档 链接 package mainimport ("context""fmt""log""go.mongodb.org/mongo-driver/mongo""go.mongodb.org/mongo-driver/mongo/options" )func main() {// 设置客户端连接配置clientOptions : o…

变态跳台阶,剑指offer

目录 题目&#xff1a; 我们直接看题解吧&#xff1a; 相似题目&#xff1a; 解题方法&#xff1a; 审题目事例提示&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; 题目地址&#xff1a; 【剑指Offer】9、变态跳台阶 难度&#xff1a;简单 今天刷变态跳台阶&#xf…

sd-webui-controlnet代码分析

controlnet前向代码解析_Kun Li的博客-CSDN博客文章浏览阅读1.5k次。要分析下controlnet的yaml文件&#xff0c;在params中分成了4个部分&#xff0c;分别是control_stage_config、unnet_config、first_stage_config、cond_stage_config。其中control_stage_config对应的是13层…

Maven依赖管理项目构建工具(保姆级教学---下篇)

对于Maven依赖管理项目构建工具的介绍&#xff0c;我们将其分为上篇和下篇。如果您对文章感兴趣&#xff0c;您可以在此链接中找到上篇详细内容&#xff1a; Maven依赖管理项目构建工具&#xff08;保姆级教学上篇&#xff09;-CSDN博客 一、Maven依赖传递和依赖冲突 1. …

left join查询耗时太慢,添加索引解决问题

背景 因为最近自己用的小app越用感觉加载越慢&#xff0c;以为是自己app开发逻辑出现问题了&#xff0c;结果才发现是自己很早以前的代码用到的是left join多表联查&#xff0c;以前因为数据少&#xff0c;所以没有感觉&#xff0c;现在数据量稍微一大&#xff0c;耗时就非常严…