将一个对象中的属性值赋值(拷贝)给另一个对象中对应的属性,并且对象之间可以没有任何联系。其中赋值成功的属性对应的属性名和属性类型必须相同,否则对应的属性值不会从一个对象赋值给另一个对象,但是此时不影响其他属性值的拷贝。具体如下所示。
1、实体类
@Data
public class Test1 {
private String name;
private Integer age;
private Integer stature;
}
@Data
public class Test2 {
private String name;
private String age;
private Integer stature;
}
2、将符合条件的属性值全部从一个对象赋值给另一个对象——copyProperties(Object source, Object target)
public class Test {
public static void main( String[] args ) {
Test1 test1 = new Test1();
Test2 test2 = new Test2();
test1.setName("An");
test1.setAge(3);
test1.setStature(180);
test2.setName("Yang");
test2.setAge("32岁");
BeanUtils.copyProperties(test1,test2);
System.out.println(test1);
System.out.println(test2);
}
3、结果
4、忽略某些属性的赋值——copyProperties(Object source, Object target, String… ignoreProperties)
public class Test {
public static void main( String[] args ) {
Test1 test1 = new Test1();
Test2 test2 = new Test2();
test1.setName("An");
test1.setAge(3);
test1.setStature(180);
test2.setName("Yang");
test2.setAge("32岁");
String stature = "stature";
BeanUtils.copyProperties(test1,test2,stature);
System.out.println(test1);
System.out.println(test2);
}
5、输出