java xstream实现深拷贝吗

avatar
作者
筋斗云
阅读量:0

XStream本身不提供深拷贝的功能,但可以通过自定义序列化和反序列化来实现深拷贝。

下面是一个简单的示例代码,演示如何使用XStream实现深拷贝:

import com.thoughtworks.xstream.XStream;  public class DeepCopyExample {          public static void main(String[] args) {         XStream xstream = new XStream();                  // 创建一个对象         Person originalPerson = new Person("Alice", 25);                  // 深拷贝对象         Person copiedPerson = (Person) xstream.fromXML(xstream.toXML(originalPerson));                  // 修改原始对象的属性         originalPerson.setName("Bob");         originalPerson.setAge(30);                  // 输出深拷贝对象的属性,与原始对象的属性应该不同         System.out.println("Copied Person: " + copiedPerson.getName() + ", " + copiedPerson.getAge());     } }  class Person {     private String name;     private int age;          public Person(String name, int age) {         this.name = name;         this.age = age;     }          public String getName() {         return name;     }          public void setName(String name) {         this.name = name;     }          public int getAge() {         return age;     }          public void setAge(int age) {         this.age = age;     } } 

在上面的示例中,我们使用XStream将对象转换为XML字符串,然后再将XML字符串转换为对象,以实现深拷贝。最后输出深拷贝对象的属性,可以看到与原始对象的属性不同。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!