相关疑难解决方法(0)

如何在Java中创建对象的深层副本?

在java中,实现深层对象复制功能有点困难.您采取了哪些步骤来确保原始对象和克隆的对象没有共享?

java clone class

284
推荐指数
16
解决办法
31万
查看次数

用泛型克隆

曾几何时有一堂课:

public class Scope<C extends Cloneable & Comparable<C>> implements Comparable<Scope<C>>, Cloneable, Serializable {

   private C starts;
   private C ends;
   ...

   @SuppressWarnings("unchecked")
   @Override
   public Object clone() {
       Scope<C> scope;
       try {
           scope = (Scope<C>) super.clone();
           scope.setStarts((C) starts.clone()); // The method clone() from the type Object is not visible
           scope.setEnds((C) ends.clone()); // The method clone() from the type Object is not visible
       } catch (CloneNotSupportedException e) {
           throw new RuntimeException("Clone not supported");
       }
       return scope;
   }
}
Run Code Online (Sandbox Code Playgroud)

在对象中我们有:

protected native Object clone() …
Run Code Online (Sandbox Code Playgroud)

java clone

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

clone ×2

java ×2

class ×1