所以我有一些代碼,看起來像這樣:創建從通用的「對象」列表中的自定義對象的名單會越來越ClassCastException異常
public void success(List<Object> profiles, Response response) {
List<MyCustomObject> list= new ArrayList<MyCustomObject>();
for (Object profile : profiles) {
list.add((MyCustomObject) profile); // this line crashes
}
}
所以我得到了ClassCastException
在橫線之上。我可以這樣做嗎?
這裏就是我要做的,我真正的代碼是一個比較複雜:
我有一個List
包含兩種類型的對象。所以,我正在使用Object
來支持這兩個。然後,一旦我從服務器收到這個列表,我想將列表分成兩個我的自定義對象列表(例如,List<MyCustomObject>
而不是List<Object>
。因此,我在for
循環中執行上面的操作,以便我可以存儲傳入通用對象到其特定類型的對象名單。
是否有另一種方式做到這一點?我在正確的軌道上?
使用「instanceof」運算符來確定哪個對象類型和路由到正確的列表。也許這個pu是否認爲設計的有效性? – OldProgrammer
如果我正確地理解了你,那麼聲明兩個列表類型而不是轉換,如何使用一些條件,然後填充適當的列表? –
@SandeepChatterjee這正是我想要做的,做的。但我的執行是有缺陷的。但看起來'instanceof'是我除了投射之外所需要的。 – KickingLettuce