【发布时间】:2009-05-27 21:10:08
【问题描述】:
我有一个关于泛型的 Java 问题。我声明了一个通用列表:
List<? extends MyType> listOfMyType;
然后我尝试用某种方法实例化并将项目添加到该列表中:
listOfMyType = new ArrayList<MyType>();
listOfMyType.add(myTypeInstance);
其中myTypeInstance 只是MyType 类型的对象;它不会编译。它说:
方法 add(capture#3-of ? extends MyType) 在类型 List
不适用 对于参数(MyType)
有什么想法吗?
【问题讨论】:
-
如果类 Bar 扩展类 Foo 并且类 Baz 具有 generic
那么 Baz waldo = new Baz () 将不起作用,因为 Baz 不是 Baz 的子类 , Bar 是 Foo 的子类。子类不适用于泛型。 ArrayList
标签: java list generics bounded-wildcard