javaBean拷贝 --Orika简单使用

Orika简单使用

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

  • maven依赖
<dependency>
    <groupId>ma.glasnost.orika</groupId>
    <artifactId>orika-core</artifactId>
    <version>1.5.2</version>
</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<A> 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<B> 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值