在Java中使用BeanUtils进行深拷贝,可以使用BeanUtils.copyProperties()方法。该方法可以将一个对象的属性值复制到另一个对象中,实现深拷贝的效果。
下面是一个示例代码,演示如何使用BeanUtils进行深拷贝:
import org.apache.commons.beanutils.BeanUtils;
public class DeepCopyExample {
public static void main(String[] args) throws Exception {
// 创建要拷贝的对象
Person source = new Person("Alice", 25, new Address("123 Street", "City"));
// 创建目标对象
Person dest = new Person();
// 使用BeanUtils进行深拷贝
BeanUtils.copyProperties(dest, source);
// 输出拷贝后的对象
System.out.println(dest);
}
}
class Person {
private String name;
private int age;
private Address address;
// 省略getter和setter方法...
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}
class Address {
private String street;
private String city;
// 省略getter和setter方法...
@Override
public String toString() {
return "Address{" +
"street='" + street + '\'' +
", city='" + city + '\'' +
'}';
}
}
在上面的示例代码中,我们创建了一个Person类和一个Address类,Person类包含一个Address类型的属性。通过调用BeanUtils.copyProperties()方法,我们将source对象的属性值深拷贝到dest对象中,实现了深拷贝的效果。