說我有一個基類:鑄造基地型與Java
abstract class TheBase {}
class Foo extends TheBase {}
class Bar extends TheBase {}
我想「投」基對象插入此類型:
TheBase obj = getFromSomewhere();
Foo foo = obj.asA(Foo.class);
Bar bar = obj.asA(Bar.class);
asA
將拋出一個例外,我有定義爲:CustomCannotCastException()
這可能嗎?
起初,不要在TheBase類中進行強制轉換。讓來電者決定,你得到的是哪個類 –
@JordiLaforge:但是調用者正在決定她想要哪個類(通過參數)。 – Thilo
爲什麼重新發明標準的鑄造機制?爲什麼不做'Foo foo =(Foo)obj;'?爲什麼你自己的'CustomCannotCastException'而不是使用標準的'ClassCastException'? – Jesper