源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java Clone(类的复制)实例代码

  • 时间:2021-04-16 08:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java Clone(类的复制)实例代码
自己实现了一遍:
[u]复制代码[/u] 代码如下:
public class A implements Cloneable { public String str[]; A() { str = new String[2]; } public Object clone() { A o = null; try { o = (A) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } o.str = new String[2]; return o; } } void run() throws Exception { A a1 = new A(), a2 = new A(); a1.str[0] = "a"; a1.str[1] = "b"; a2 = (A) a1.clone(); a2.str[0] = "c"; a2.str[1] = "d"; System.out.println(a1.str[0] + " " + a2.str[0]); }
结果: a c 1.
[u]复制代码[/u] 代码如下:
public class A implements Cloneable {  public String name;  public Object clone() {   A o = null;   try {    o = (A) super.clone();   } catch (CloneNotSupportedException e) {    e.printStackTrace();   }   return o;  } }
2.
[u]复制代码[/u] 代码如下:
public class A implements Cloneable {  public String name[];  public A(){   name=new String[2];  }  public Object clone() {   A o = null;   try {    o = (A) super.clone();   } catch (CloneNotSupportedException e) {    e.printStackTrace();   }   return o;  } }
3.
[u]复制代码[/u] 代码如下:
public class A implements Cloneable {         public String name[];         public Vector<B> claB;         public A(){             name=new String[2];             claB=new Vector<B>();         }         public Object clone() {             A o = null;             try {                 o = (A) super.clone();             } catch (CloneNotSupportedException e) {                 e.printStackTrace();             }             o.name=new String[2];//深度clone             o.claB=new Vector<B>();//将clone进行到底             for(int i=0;i<claB.size();i++){                 B temp=(B)claB.get(i).clone();//当然Class B也要实现相应clone方法              o.claB.add(temp);             }             return o;         }     }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部