zoukankan      html  css  js  c++  java
  • java-代码生成器

    package ormRex;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class Test
    {
    
        private final static String dir = "/Users/caicai/work/space/qingread-api-entity/src/main/java/com/qingread/serial/entity";
    
        public static void main(String[] args) throws IOException
        {
            File dirFile = new File(dir);
            String[] allFileName = dirFile.list();
            for (String fileName : allFileName)
            {
                if (fileName.contains("java") == false) continue;
                Path path = Paths.get(dir, fileName);
                List<String> alines = Files.readAllLines(path);
                List<String> allLine = new ArrayList<>();
                String json = "@JSONField(name="%s")";
                String dateJson = "@JSONField(name="%s",format="yyyy-MM-dd HH:mm:ss")";
                // import com.alibaba.fastjson.annotation.JSONField;
                for (String line : alines)
                {
                    if (line.contains(" class "))
                    {
                        allLine.add("import com.alibaba.fastjson.annotation.JSONField;");
                        allLine.add("import java.io.Serializable;");
                        line = line.substring(0, line.length() - 1);
                        line += " implements Serializable {";
                        allLine.add(line);
                        allLine.add("private static final long serialVersionUID = 1L;");
                        continue;
                    }
                    if (line.contains("private"))
                    {
                        // 关键字转下划线
                        String key = line.substring(line.lastIndexOf(" "), line.length() - 1);
                        key = key.trim();
                        String nKey = "";
                        for (int i = 0; i < key.length(); i++)
                        {
                            char c = key.charAt(i);
                            if (Character.isUpperCase(c))
                            {
                                nKey += "_";
                                nKey += Character.toLowerCase(c);
                                continue;
                            }
                            nKey += c;
                        }
                        // 添加json修饰
                        if (line.contains("Date")) nKey = String.format(dateJson, nKey);
                        else
                            nKey = String.format(json, nKey);
                        allLine.add(nKey);
                    }
                    allLine.add(line);
                }
                PrintWriter pw = new PrintWriter(path.toFile());
                for (String str : allLine)
                {
                    pw.println(str);
                }
                pw.flush();
                pw.close();
            }
        }
    
    }

    添加fastJson和序列化修饰

  • 相关阅读:
    利用wget下载文件,并保存到指定目录
    tar命令详解
    Ubuntu 16.04中安装Chromium浏览器
    怎么打开unity tweak tool
    WPS for linux不能使用中文输入法
    Window7 驱动编程环境配置
    Windows内核 字符串基本操作
    Windows内核 语言选择注意点
    Windows内核 内存管理基本概念
    Windows内核 WDM驱动程序的基本结构和实例
  • 原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/9009771.html
Copyright © 2011-2022 走看看