我想克隆给定的对象。
如果我这样做
public class Something{
Object o; //set in the constructor
public Something(Object o){
this.o = o;}
public Something clone() throws CloneNotSupportedException{
Something temp = super.clone();
if (o instanceof Cloneable) //important part
temp.o = o.clone(); //important part
else temp.o = o;
}
}
这将不起作用,因为 o.clone() 受到保护。
如果我这样做
if (o instanceof Cloneable) //important part
temp.o = ((Cloneable)o).clone(); //important part
它也不起作用,因为 Cloneable 是一个空接口。
那么我如何让编译器相信你可以克隆 o?