喂所有,「動態」鑄造
想知道是否有任何Java黑客誰可以給我介紹的,爲什麼下面不工作:
public class Parent {
public Parent copy() {
Parent aCopy = new Parent();
...
return aCopy;
}
}
public class ChildN extends Parent {
...
}
public class Driver {
public static void main(String[] args) {
ChildN orig = new ChildN();
...
ChildN copy = orig.getClass().cast(orig.copy());
}
}
的代碼非常開心編譯,但決定在運行時拋出一個ClassCastException D =
編輯:哇,真的很快回復。多謝你們!所以看起來我不能使用這種方法downcast ...是否有任何其他方式在Java中進行向下轉換?我確實想過讓每個ChildN
課程都覆蓋copy()
,但並不熱衷於添加額外的樣板代碼。
你可以做到這一點。看看我的編輯。我雖然在第一時間理解「鑄造」有困難。 – OscarRyz 2008-12-30 22:06:31