温馨提示×

如何用beanutils进行深拷贝

小樊
393
2024-06-28 17:00:31
栏目: 编程语言

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

0