1
をダウンキャストは、私のサンプルコードです:Javaのクローニングと以下
class One implements Cloneable {
@Override
public One clone() throws CloneNotSupportedException {
One obj = (One) super.clone();
return obj;
}
}
public class Two extends One {
@Override
public Two clone() throws CloneNotSupportedException {
Two obj1 = (Two) super.clone(); // Line 12
return obj1;
}
public static void main(String[] args) {
boolean num = true;
try {
if ((new Two().clone()) instanceof One) {
num = false;
}
} catch (CloneNotSupportedException e) {
System.out.println(e);
}
System.out.println(num);
}
}
それは偽出力します。
誰かが行12で何が起きているのか説明できますか? なぜこのダウンキャストは例外をスローしませんか?
なぜそれを投げるべきですか? – tkausl
なぜそれはスローされませんか? *魔法*のため。月がない夜のような黒い魔法。 'clone()'は奇妙な、JVMレベルのものです。 –