我嘗試寫一些代碼,看起來像這樣:Java是否有任何計劃添加通用收集協方差?
public List<IObject> getObject(){
ArrayList<ConcreteObject> objects = new ArrayList<ConcreteObject>();
return objects;
}
(其中ConcreteObject實現IObject提取)
這並不在所有的工作。它給出了一個編譯器錯誤。 Java是否有計劃在未來支持這一點?到那時爲止最好的解決方法是什麼?我最終做的是:
public List<IObject> getObject(){
List<IObject> objects = new ArrayList<IObject>();
return objects;
}
這個工作,也許沒有真的有這樣做的不良副作用。這是普遍接受的最佳方法嗎?
你確定會編譯? ConcreteObject和IObject之間的連接在哪裏? – 2009-11-17 19:51:40
啊,沒關係 - 我們假設它在ConcreteObject的定義中。 – 2009-11-17 19:52:27
謝謝,我喜歡這種方法。 – 2009-11-17 20:11:17