【问题标题】:How to implement deep clone of an object [duplicate]如何实现对象的深度克隆[重复]
【发布时间】:2011-07-26 15:19:14
【问题描述】:

可能重复:
Java: recommended solution for deep cloning/copying an instance

使用Java,如何实现对象的深度克隆?

【问题讨论】:

标签: java


【解决方案1】:

有一种实现深度克隆的方法是使用复制构造函数。

link 中的示例

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    有两种类型的副本:

    • 浅拷贝
    • 深拷贝

    浅拷贝构造对象的新实例,但不构造对象可能具有的字段的新实例。 深拷贝构造对象的新实例,并为对象可能具有的字段、这些字段等构造新实例。

    您可以查看 ArrayList 的 clone() 方法以了解更多详细信息: 这是一个浅拷贝。如果你想要深拷贝,你必须克隆列表包含的每个元素。

    【讨论】:

      【解决方案3】:
      public class Person {
          private String name;
          private int age;
      
          // getters and setters.
      }
      
      // deep copy:
      Person source = new Person("james", 20);
      Person dest = new Person();
      dest.setName(source.getName());
      dest.setAge(source.getAge());
      

      【讨论】:

      • 这将适用于年龄具有原始类型并且名称具有不可变类型,但不适用于更高级别的对象
      • 是的,如果Person中有另一个对象,这个深拷贝需要递归完成。
      猜你喜欢
      • 1970-01-01
      • 2017-09-01
      • 2010-09-09
      • 2015-01-08
      • 2013-06-29
      • 2012-06-05
      • 1970-01-01
      相关资源
      最近更新 更多