阅读量:8
在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对象中,实现了深拷贝的效果。