假設我有一個A類,並且A1,A2從A 繼承有兩種功能:設計模式:多態的對象
List<A1> getListA1(){...}
List<A2> getListA2(){...}
現在我想做類似於A1兩者的東西, A2在另一個函數
public void process(List<A>){...}
如果我想通過其中ListA1或ListA2的情況下,當然類型不匹配,因爲編譯器不允許從列表< A1脅迫>列出<一個>。我不能這樣做:
List<A1> listA1 = getListA1();
List<A> newList = (List<A>)listA1; //this is not allowed.
那麼什麼是過程()的最佳方法?有沒有辦法以通用的方式來完成它,而不是將相似的代碼寫入List和List?
我纔想到這個問題。問題是這兩個方法在其他地方使用,我已經改變了所有相關的地方。 – zsong 2010-04-28 03:54:07