问题现象:
今天在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);