我有一个包含泛型的参数的方法。
public static void readList(List<ModelObject> list)
{
// more code
}
我想将ArrayList
ModelObjectImplementation
传递给此方法。
ArrayList<ModelObjectImplementation> myList;
myList = ...
readList(myList); // gives compilation error
ModelObject
是ModelObjectImplementation
实现的接口。如何更改方法声明以允许此操作?
答案 0 :(得分:26)
如果您使用的是Java 1.5及更高版本,则可以使用通配符。
public static void readList(List<? extends ModelObject> list)
此解决方案更通用,因为它适用于java.util.List
的所有ModelObject
接口实现和子类/子接口。
有关详细信息,请转到通配符tutorial