我有一個父類和一些子類(我們稱之爲parent
和child1
,child2
,等)。在Java中爲子類變量指定父類
我有一個函數,它接受的parents
2-d陣列和它變平到1 d陣列是這樣的:
public parent[] flatten(parent[][] input);
在主叫情況下,我知道,當我傳遞數組,所有元素都具有相同的類型,並且該類型是子類型之一(特別是,我知道它是哪種子類型)。我希望能夠利用數組的特定元素,並將其分配給適當的子類型這樣的變量:
child1 c = flatten(input)[0];
我知道類型斷言(相關SO後:Assert an object is a specific type),但我如果斷言成功,似乎無法找到實際分配給正確類型變量的方法。在Java中這種事情甚至是可能的嗎?我知道在其他語言中可能會出現這種情況,例如Go。
你知道會發生什麼,如果我typecast和我錯了嗎?在這種情況下不會發生;我只是好奇。 – joshlf
它會在運行時拋出'ClassCastException'。如果你確定它不會發生在這裏,那就沒關係。但是這只是一個普遍的想法,以避免這種鑄造。 –
嗯冷靜。我的參考資料是Go,在編譯時必須證明類型轉換是正確的,並且類型斷言(一個單獨的語言結構)用於在轉換之前無法證明的轉換。 – joshlf