假设我有一个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