24

我有一个包含泛型参数的方法。

public static void readList(List<ModelObject> list)
{
    // more code
}

我想将一个ArrayListof ModelObjectImplementations 传递给这个方法。

ArrayList<ModelObjectImplementation> myList;
myList = ...

readList(myList); // gives compilation error

ModelObject是一个ModelObjectImplementation实现的接口。如何更改方法声明以允许这样做?

4

1 回答 1

35

如果您使用的是 Java 1.5 及更高版本,则可以使用通配符。

public static void readList(List<? extends ModelObject> list)

这个解决方案更通用,因为它适用于所有java.util.List接口实现和ModelObject. 有关更多详细信息,请转到通配符教程

于 2012-05-17T21:04:42.330 回答