构建了一个类,包含一个叫obj的Object类变量,使用Object类是为了使obj能够被任何类型变量赋值
我想重写clone()方法实现obj的深度复制,
但是由于Object自身的clone()方法是protected的,下划线的地方报错了。
请问有没有什么方法来实现obj的深度复制,前提obj必须是Object类型class A implements Cloneable{
public Object obj;
public Object clone() throws CloneNotSupportedException {
Object tempt=super.clone();
((A)tempt).obj=obj.clone();
}
}

解决方案 »

  1.   

    Object类对象是无法被clone的,至少当引用obj被声明为Object类的时候,你不能这么做...因为Java中并不是所有的类都可以被克隆(而且JDK中还描述说不能保证某些类clone的结果x.clone()!=x绝对成立),所以Object类对象无法调用clone()...虽然不太了解lz的需求,不过建议lz考虑范性,当obj的类型不是Object(Object是绝对不行的)的时候,clone()方法就可以使用了喵~~``
      

  2.   

    貌似lz的要求是实现不了的...obj能够被任何类型变量赋值,但不是所有类型变量都能被克隆喵~~~`不过忘记说了,我不是高手,所以意见只供参考...
      

  3.   

    lz报的什么错 是ClassCastException吧
      

  4.   


    恩,谢谢大家,今天看了泛型这一章,用泛型方法解决了问题。报什么错没注意到,用eclipse直接编译显示不能使用clone().
      

  5.   

    Object这个类不能被深度复制,java中不是所有的类都能深度复制的.