Passing ArrayList<Subclass> to method declared with List<Superclass>
generics, java
Solution
You can use wildcards, if you're using Java version 1.5 and higher.
public static void readList(List<? extends ModelObject> list)
This solution is more generic, because it fits for all `java.util.List` interface implementations and subclasses/subinterfaces of `ModelObject`. For more details go to wildcards tutorial
Problem
I have a method with a parameter containing generics. ``` public static void readList(List<ModelObject> list) { // more code } ``` I want to pass an `ArrayList` of `ModelObjectImplementation`s to this method. ``` ArrayList<ModelObjectImplementation> myList; myList = ... readList(myList); // gives compilation error ``` `ModelObject` is an interface that `ModelObjectImplementation` implements. How can I change the method declaration to allow this?