对象属性拷贝工具类

五种对象属性拷贝工具类大全 Bean的属性拷贝

对象属性拷贝

 

BeanUtils与PropertyUtils区别:https://blog.csdn.net/u012894692/article/details/80087859

相同的: 都是浅拷贝,都提供了copyProperties()方法,只要属性名相同就可以从源bean中拷贝值到目标bean中 
不同点: BeanUtils.copyProperties提供类型转换功能,BeanUtils会调用默认的转换器(Converter)进行类型转换,所以在拷贝时能对八个基本类型间进行转换,不能转换时抛出错误 
PropertyUtils.copyProperties不提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,会提示argument mistype异常。

 

推荐:

使用BeanUtils(效率比BeanCopier差些  但是提供类型转换功能)   

或者BeanCopier  (效率高些  但是只拷贝名称和类型都相同的属性)

 

BeanUtils:    (org.springframework.beans.BeanUtils)

BookTest bookTest = new BookTest();
        bookTest.setId(1);
        bookTest.setAuthor("作者");
        bookTest.setBookName("书名");
        bookTest.setIsSale(2);

        BookTestTemp bookTestTemp = new BookTestTemp();
        // 第一个参数:源  第二个参数:目标
        BeanUtils.copyProperties(bookTest,bookTestTemp);

        System.out.println(bookTestTemp);

输出:

BookTestTemp{id=1, bookName='书名', isbn='null', author='作者'}

 

PropertyUtils.copyProperties(Object dest, Object orig);

实体间拷贝

User user = new User();
user.setName("张三");
user.setAge(24);
User user2 = new User();
PropertyUtils.copyProperties(user2, user);
System.out.println(user2);//User [name=张三, age=24]

map和实体间拷贝

User user3 = new User();
Map<String,Object> map = new HashMap<String, Object>();
map.put("name", "王五");
map.put("age", 25);
PropertyUtils.copyProperties(user3, map);
System.out.println(user3);//User [name=王五, age=25]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值