• API文档转实体类脚本


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

    1. //根据 接口文档栏位项目名称 中文名称 补充说明 生成XMLmodel类
    2. //每行以$$$开头 第一列为$$$
    3. public static void generateCommonApiModel(String str) {
    4. int indexOfPP = 0;
    5. //每行开头
    6. String linePrefix = "$$$";
    7. //字段名过滤的字符
    8. String varNameSkipStr = "[..]";
    9. //截取的列
    10. int [] contentIndexes = new int[]{1,2,3};
    11. String rstContent = "";
    12. while (str.indexOf(linePrefix, indexOfPP) > -1) {
    13. //截取下一个..和当前..中间的内容,以及最后一个..以后的内容
    14. int currPP = str.indexOf(linePrefix, indexOfPP);
    15. String line;
    16. if (currPP + linePrefix.length() < str.length()) {
    17. int nextPP = str.indexOf(linePrefix, currPP + linePrefix.length());
    18. if (nextPP > 0) {
    19. line = str.substring(currPP + linePrefix.length(), nextPP);
    20. indexOfPP = nextPP;
    21. } else {
    22. //最后一个
    23. line = str.substring(currPP + linePrefix.length());
    24. indexOfPP = str.length()-1;
    25. }
    26. } else {
    27. //最后一个
    28. line = str.substring(currPP + linePrefix.length());
    29. indexOfPP = str.length()-1;
    30. }
    31. String[] cells = line.split("[\t]");
    32. //@XmlElement(name = "Cur_SbmTm")
    33. // private String curSbmTm;
    34. String content ="/**\n";
    35. content += " * "+cells[contentIndexes[1]];
    36. if (cells.length > contentIndexes[2]) {
    37. for (int i = contentIndexes[2]; i < cells.length; i ++) {
    38. content += " "+cells[i].replaceAll("\n", "");
    39. }
    40. }
    41. content+= "\n */\n";
    42. String varName = cells[contentIndexes[0]].replaceAll(varNameSkipStr, "");
    43. content += "@XmlElement(name = \""+varName+"\")\n";
    44. content +="@XmlJavaTypeAdapter(CDataAdapter.class)\n";
    45. content += "private String "+ StringUtils.toCamelCase(varName) +";";
    46. content +="\n";
    47. rstContent += content;
    48. System.out.print("");
    49. }
    50. System.out.println(rstContent);
    51. }
    52. public static void main(String[] args) {
    53. String str = "$$$\tname\t姓名\t客户姓名\n" +
    54. "$$$\tage\t年龄\t客户年龄\n" +
    55. "$$$\tweight\t体重\t客户体重\n" +
    56. "$$$\theight\t身高\t客户身高\n"
    57. ;
    58. generateCommonApiModel(str);
    59. }

    输出:

    /**
     * 姓名  客户姓名
     */
    @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;

  • 相关阅读:
    观察者模式、状态模式在实际工作中的使用
    数据库缓存一致性研究
    环保主题网页制作作业 保护环境网页设计模板 简单学生网页设计 静态HTML CSS网站制作成品
    【前端】HTML入门 —— HTML的常见标签
    【opencv】传统图像识别:hog+svm实现图像识别详解
    智慧仓储解决方案-最新全套文件
    【算法总结】十大排序
    C++程序设计基础实践:学生信息管理系统
    bbed解决ORA-01578---惜分飞
    【Flink 实战系列】Flink on yarn 为什么 Allocated CPU VCores 显示不正确?
  • 原文地址:https://blog.csdn.net/e274794140/article/details/134555392