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

  • 相关阅读:
    JS小技巧总汇
    [转贴]聪明人如何拯救你的职业困
    Button按钮多行显示的实现方法
    事件和委托
    支持~
    关于递归
    Android 资源的国际化
    Android 文件的浏览(类似于FileDialog的功能)
    Android 开发TCP、UdP客户端
    Android 为什么现在google不让结束整个程序,只让结束单个Activity(转)
  • 原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/9009771.html
Copyright © 2020-2023  润新知