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和序列化修饰

猜你喜欢

转载自www.cnblogs.com/shuiyonglewodezzzzz/p/9009771.html