javaBean拷贝 --Orika简单使用

Orika简单使用

项目中常常需要对象拷贝,Orika可避免getter、setter方法太多,代码臃肿,耗时等问题

  • maven依赖
<dependency>
    <groupId>ma.glasnost.orikagroupId>
    <artifactId>orika-coreartifactId>
    <version>1.5.2version>
dependency>

javaBean

@Data
public class A {

    private String name;

    private Integer age;
}
@Data
public class B {

    private String name;

    private Integer bAge;
}

demo

public class OrikaTest {

    public static void main(String[] args) {

        MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
        A a = new A();
        a.setName("张三");
        a.setAge(18);
        //相同属性
        B b1 = mapperFactory.getMapperFacade().map(a,B.class);
        System.out.println(b1);// B(name=张三, bAge=null)

        //不同属性
        mapperFactory.classMap(A.class,B.class).field("age","bAge").byDefault().register();
        B b2 = mapperFactory.getMapperFacade().map(a,B.class);
        System.out.println(b2); //B(name=张三, bAge=18)

        //list
        List aList = new ArrayList<>();
        for(int i = 0; i < 5; i++){
            A a1 = new A();
            a1.setName("zs"+ i);
            a1.setAge(i);
            aList.add(a1);
        }
        mapperFactory.classMap(A.class,B.class).field("age","bAge").byDefault().register();
        List bList = mapperFactory.getMapperFacade().mapAsList(aList,B.class);
        bList.forEach(b -> {System.out.println(bList);});
        // [B(name=zs0, bAge=0), B(name=zs1, bAge=1), B(name=zs2, bAge=2), B(name=zs3, bAge=3), B(name=zs4, bAge=4)]
        //[B(name=zs0, bAge=0), B(name=zs1, bAge=1), B(name=zs2, bAge=2), B(name=zs3, bAge=3), B(name=zs4, bAge=4)]
        //[B(name=zs0, bAge=0), B(name=zs1, bAge=1), B(name=zs2, bAge=2), B(name=zs3, bAge=3), B(name=zs4, bAge=4)]
        //[B(name=zs0, bAge=0), B(name=zs1, bAge=1), B(name=zs2, bAge=2), B(name=zs3, bAge=3), B(name=zs4, bAge=4)]
        //[B(name=zs0, bAge=0), B(name=zs1, bAge=1), B(name=zs2, bAge=2), B(name=zs3, bAge=3), B(name=zs4, bAge=4)]
    }
}

其他用法参考:Java Code Examples for ma.glasnost.orika.impl.DefaultMapperFactory

你可能感兴趣的:(java)