深层复制对象

MBZ*_*MBZ 2 java copy object

是否有可能深度复制Object开箱即用的?即clone手动编码功能的任何其他方式.

Ste*_*n C 5

  1. 克隆不一定执行深层复制.实际上,默认实现Object.clone()创建了一个拷贝.

  2. 如果对象的封由实现对象Serializable或者Externalizable,您可以使用ObjectOutputStream,并ObjectInputStream创建一个深层副本...但它是昂贵的.

  3. cloning库是另一种选择,但我最初的代码读取是它依赖于图中每个对象的类,提供了无参数构造函数.然后它将修改生成的对象以获得原始对象状态的副本.此过程可能会产生不良副作用,具体取决于no-args构造函数的实际操作.

简而言之,我认为没有通用的解决方案.