Design pattern: Polymorphism for list of objects
        Posted  
        
            by ziang
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by ziang
        
        
        
        Published on 2010-04-28T03:46:40Z
        Indexed on 
            2010/04/28
            4:03 UTC
        
        
        Read the original article
        Hit count: 234
        
Suppose I have a class A, and A1, A2 inherits from A. There are 2 functions:
List<A1> getListA1(){...}
List<A2> getListA2(){...}
Now I want to do something similar to both A1 and A2 in another function
public void process(List<A>){...}
If I want to pass the instance of either ListA1 or ListA2, of course the types doesn't match because the compiler doesn't allow the coercion from List< A1> to List< A>. I can't do something like this:
List<A1> listA1 = getListA1();
List<A> newList = (List<A>)listA1; //this is not allowed.
So what is the best approach to the process()? Is there any way to do it in a universal way rather than write the similar code to both List and List?
© Stack Overflow or respective owner