欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-08-20 10:04:09|栏目:JAVA代码|点击:

自己实现了一遍:

复制代码 代码如下:

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.

复制代码 代码如下:

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.

复制代码 代码如下:

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.

复制代码 代码如下:

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;   
     }   
 }

上一篇:MybatisPlus实现简单增删改查功能

栏    目:JAVA代码

下一篇:SpringBoot记录Http请求日志的方法

本文标题:Java Clone(类的复制)实例代码

本文地址:http://www.codeinn.net/misctech/168347.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有