我有價值對象/豆類(只包含成員,無邏輯):Java =什麼是向下轉換的替代品/解決方案?
public class Parent {
String first;
String second;
}
一些處理邏輯返回「父」。然後我做一些進一步的處理,並要添加furtehr領域:
public class ParentAddedMembers extends Parent {
String third;
String fourth;
}
的問題是,我不能垂頭喪氣從Parent
到ParentAddedMembers
。
ParentAddedMembers parentAddedMembers = (ParentAddedMembers) parent;
這似乎是無效的。 (從我的觀點來看,在這種情況下,當向下轉換未分配的字段時,新的字段只會包含空值,但似乎java不允許這樣做)。
什麼是正確的解決方案,如果我不想手動複製所有字段(我可以寫一個複製方法,將父成員複製到新創建的ParentAddedMembers中,但這不適用於私人字段。如果我在父項中添加/刪除成員,很容易中斷...)
這是什麼對比解決方案?
非常感謝!
馬庫斯
更新: 我想才達到的。我有第三方庫返回一些對象父(來自搜索結果),但我需要添加更多的字段(元數據)。如所描述的向下轉換將很容易地解決問題,但不起作用。我也不能改變父母,因爲它來自第三方庫。
你爲什麼不試圖沮喪工作?你得到的錯誤是什麼?你是怎麼聲明「父母」的?因爲我不明白爲什麼它不應該工作,不管漢堡包和芝士漢堡;-) – 2011-06-07 08:52:08
漢堡包是一個漢堡包嗎? – Kevin 2011-06-07 08:52:12
只要想一想。一切都是對象,但是你不能把蘋果當作汽車,所以你不能把所有東西都貶低爲一切。你試圖建模的真正問題是什麼? – Kaj 2011-06-07 08:52:37