复制一个对象 java_java 已知一个对象的引用,如何复制这个对象?

给你个例子,你看看是不是你需要的

package clone.ext;

class UnCloneA implements Cloneable{

private int i;

public UnCloneA(int ii) { i = ii; }

public void doubleValue() { i *= 2; }

public String toString() {

return Integer.toString(i);

}

public Object clone(){

UnCloneA o = null;

try{

o = (UnCloneA)super.clone();

}catch(CloneNotSupportedException e){

e.printStackTrace();

}

return o;

}

}

class CloneB implements Cloneable{

public int aInt;

public UnCloneA unCA = new UnCloneA(111);

public Object clone(){

CloneB o = null;

try{

o = (CloneB)super.clone();

}catch(CloneNotSupportedException e){

e.printStackTrace();

}

o.unCA = (UnCloneA)unCA.clone();

return o;

}

}

public class CloneMain {

public static void main(String[] a){

CloneB b1 = new CloneB();

b1.aInt = 11;

System.out.println("before clone,b1.aInt = "+ b1.aInt);

System.out.println("before clone,b1.unCA = "+ b1.unCA);

CloneB b2 = (CloneB)b1.clone();

b2.aInt = 22;

b2.unCA.doubleValue();

System.out.println("=================================");

System.out.println("after clone,b1.aInt = "+ b1.aInt);

System.out.println("after clone,b1.unCA = "+ b1.unCA);

System.out.println("=================================");

System.out.println("after clone,b2.aInt = "+ b2.aInt);

System.out.println("after clone,b2.unCA = "+ b2.unCA);

}

}

2014年8月05日 23:00

c4b32610104e4aa0a99ec1cf83cb32ab.gif

22

0

0

4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值