实体类--自动生成工程代码配置的实体类

Java–自动生成SpringBoot工程代码的实体类

1、概述

属性清单

  1. 项目名称
  2. 包名
  3. 项目说明
  4. 作者

----包名拆分为路径----

  1. 路径1
  2. 路径2
  3. 路径3
  4. 完整路径

方法清单

  1. 构造方法

    参数:项目名、包名、项目说明、作者

  2. 实体类转换为Map集合

    说明:通过Java的反射机制,把实体类的信息转换为Map集合存储

2、代码实现

public class Settings {

    private String project="example"; //项目名称
    private String pPackage="com.example.demo";// 包名
    private String projectComment; // 项目说明
    private String author;// 作者
    private String path1="com"; //路径1
    private String path2="example"; //路径2
    private String path3="demo"; //路径3
    private String pathAll; // 完整路径

    public Settings(String project, String pPackage, String projectComment, String author) {
        if(StringUtils.isNotBlank(project)) {
            this.project = project;
        }
        if(StringUtils.isNotBlank(pPackage)) {
            this.pPackage = pPackage;
        }
        this.projectComment = projectComment;
        this.author = author;
        // 把包名拆分为路径(‘.’需要使用转义符号‘\’才能表示为字符串“.”,并且在IDEA中要用“\\”)
        String[] paths = pPackage.split("\\.");
        path1 = paths[0];
        path2 = paths.length>1?paths[1]:path2;
        path3 = paths.length>2?paths[2]:path3;
       	// 把包名转换为路径
        pathAll = pPackage.replaceAll(".","/");
    }

    public Map<String, Object> getSettingMap(){
        Map<String, Object> map = new HashMap<>();
        // 获取Settings的class信息,并获得其中属性字段信息
        Field[] declaredFields = Settings.class.getDeclaredFields();
        for (Field field : declaredFields) {
        	// 允许访问‘private’修饰的字段
            field.setAccessible(true);
            try{
            	// 构造 key-value 键值对,表示 属性名-属性值,存入Map集合
                map.put(field.getName(), field.get(this));
            }catch (Exception e){}
        }
        return map;
    }
}
  • 补充说明StringUtils是字符串工具类,用来处理字符串操作,可以通过第三方依赖实现也可以自己编写

参考资料

【1】Java的反射机制
【2】反射–Field

猜你喜欢

转载自blog.csdn.net/weixin_38708854/article/details/106157710
今日推荐