美文网首页
java对象转换工具

java对象转换工具

作者: 大风车__ | 来源:发表于2023-01-02 11:20 被阅读0次

对象转换在项目中很常见, 目前比较有名的库MapperStruct ,基于此框架思路写了一个工具,能够实现简单的对象转换,属性名映射,黑白名单输出
github地址:https://github.com/QiaokeZ/convert

使用如下

public class Entity {
    public String username;
    public String password;
    public String a;
    public String b;
    public String c;
    public String d;
    public String e;
    public String f;
}

public class Vo {
    public String username;
    public String x;
    public String y;
    public String z;
    public String d;
    public String e;
    public String f;
}


public class Main {

    public static void main(String[] args) {
        Entity entity = new Entity();
        entity.username = "java";
        entity.password = "abc";
        entity.a = "a";
        entity.b = "b";
        entity.c = "c";
        entity.d = "d";
        entity.e = "e";
        entity.f = "f";

        //将Entity转换Vo对象
        Vo vo = Converter.convert(entity, Vo.class);
        System.out.println(vo.username);

        //属性名映射
        Map<String, String> mapping = new HashMap<>();
        mapping.put("a", "x");//entity.a -> vo1.x
        mapping.put("b", "y");//entity.b -> vo1.y
        mapping.put("c", "z");//entity.c -> vo1.z

        //白名单输出模式(只输出username, x, y, z元素信息)
        Set<String> whitelist = new HashSet<>();
        whitelist.add("username");
        whitelist.add("x");
        whitelist.add("y");
        whitelist.add("z");

        Options options = Options.builder()
                .whitelist(whitelist))
                .mapping(mapping)
                .build();
        Vo vo1 = Converter.convert(entity, Vo.class, options);
        System.out.println(vo1.x);
        System.out.println(vo1.y);
        System.out.println(vo1.z);
    }
}

相关文章

网友评论

      本文标题:java对象转换工具

      本文链接:https://www.haomeiwen.com/subject/hdrtcdtx.html