BeanUtils.copyProperties递归复制
时间: 2023-11-04 09:00:45 浏览: 147
BeanUtils.copyProperties()方法是Apache Commons BeanUtils库中的一个方法,它用于将一个Java对象的属性值复制到另一个对象中。这个方法可以递归地复制对象的属性,包括嵌套对象的属性。
下面是使用BeanUtils.copyProperties()方法进行递归复制的示例代码:
```java
public class Person {
private String name;
private Address address;
// getters and setters
}
public class Address {
private String city;
private String street;
// getters and setters
}
// 创建源对象
Person sourcePerson = new Person();
sourcePerson.setName("Alice");
Address sourceAddress = new Address();
sourceAddress.setCity("New York");
sourceAddress.setStreet("123 Main St");
sourcePerson.setAddress(sourceAddress);
// 创建目标对象
Person targetPerson = new Person();
// 复制属性
BeanUtils.copyProperties(targetPerson, sourcePerson);
System.out.println(targetPerson.getName()); // 输出:"Alice"
System.out.println(targetPerson.getAddress().getCity()); // 输出:"New York"
System.out.println(targetPerson.getAddress().getStreet()); // 输出:"123 Main St"
```
在上面的示例中,我们创建了一个源对象sourcePerson和一个目标对象targetPerson。通过调用BeanUtils.copyProperties()方法,将sourcePerson的属性值复制到targetPerson中。由于address属性是嵌套对象,所以也会被递归复制。
阅读全文