我無法將列表中的水果投射到列表中包含的水果子類。繼承和鑄造列表對象
public class Response {
private List<Fruit> mFruitList;
public List<Fruit> getFruitList() {
return mFruitList;
}
}
public class Fruit {
}
public class Orange extends Fruit {
}
List<Fruit> oranges = response.getFruitList();
我該如何投擲橙子,以便它是橙類的列表?這是一個糟糕的設計模式嗎?基本上我從一個水果列表的服務器獲取JSON響應。對於每個特定的Web服務調用,我都知道Fruit的子類會得到什麼,所以我需要適當地轉換該List。
你有沒有試過'列表 oranges =(列表)response.getFruitList();'? –
talnicolas
2011-06-15 16:34:44
是的,我試了很多強制鑄造沒有積極的結果。我正在重新考慮我的方法。也許最好是對Response進行子類化併爲每個Fruit子類實現適當的List。響應的90%包含每個水果類相同的成員,但列表除外。 – 2011-06-15 16:49:08
更新,共識是 - 子類化泛型。 – 2011-06-15 16:52:36