特定のオブジェクトのクローンを作成したい。
私がこれをしたら
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 は空のインターフェースであるため、どちらも機能しません。
では、クローンを作成できることをコンパイラに納得させるにはどうすればよいでしょうか?