在写项目时经常会用到的一个方法,主要作用就是深拷贝。拷贝后两个对象不会有任何联系,拷贝的依据是A对象的属性和B对对象的属性的属性名和属性类型全部相同;
比如说A类:
class A{
String name;
String sex;
List<hobby> hobbies;
}
class B{
String name;
String age;
List<hobby> hobbies;
}
BeanUtils.copyProperties(a,b); 将a的属性拷贝给b,只有name会被拷贝,List类型的即使相同也不会被拷贝。
如果想要深拷贝List类型的属性,我常用的是
A a = new A();
B b = new B();
a.hobbies.forEach(n->{
hobby h = new hobby();
BeanUtils.copyProperties(n,h);
b.gethobbies().add(h);
});