(已解决) BeanUtils的copyProperties(a,b)实现两对象相同属性的复制操作

问题现象:

今天在springboot项目中,需要对某个已有对象的相同属性进行克隆到另一个对象中.


问题分析:

乍一看似乎很简单,一个extends就能解决了;但其实并非如此:

注意需求应该理解为:

1.现在有两个对象a和b;

2.a对象中的属性已经赋值了;

3.b对象的属性值都是null;

4.a,b俩对象含有部分相同的属性名,而不是a中所有属性b都有,也不是b中所有属性a都有;

5.如果a,b俩对象中有相同属性名,则将a中这些相同属性名的属性值,赋值给b对象中对应的属性.

说实话,这种情况下,我能想到的解决办法只有:

1.调用get方法获取a对象中对应的属性的值,再调用b对象的set方法,手动的赋值;但是这个方法效率太低了,而且你还得事先知道a,b两对象含有哪些相同的属性名;从而来一个个的手动调用其对应的getter/setter方法来进行取值和赋值.

于是我上网学习了一下,发现了一种超方便的方法:

2.需要导入spring框架下的BeanUtils工具类

调用BeanUtils的copyProperties方法,就能自动化的去检测a,b俩对象中所有的相同属性名,并将a中这些属性的值;赋值给b对象中对应的属性;不同名的属性不再处理.

我只能说这个工具类太好用了!!!!!!


解决方法:

代码如下:

import org.springframework.beans.BeanUtils;

BeanUtils.copyProperties(a,b);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值