【发布时间】:2016-03-25 22:46:44
【问题描述】:
import java.util.LinkedList;
class GenericInseption{
public static void main(String[] args){
LinkedList<LinkedList<Dad>> listOfLists = new LinkedList<>();
LinkedList<Dad> list = new LinkedList<>();
listOfLists.add(list);
test(listOfLists);//error
}
private static void test(LinkedList<LinkedList<? extends Person>> listOfLists){
for(LinkedList<? extends Person> list : listOfLists){
for(Person person : list){
//peform operation on person objects
}
}
}
}
class Person{}
class Dad extends Person{}
错误
GenericInseption.java:7: error: method test in class GenericInseption cannot be applied to given types;
test(listOfLists);//error
^
required: LinkedList<LinkedList<? extends Person>>
found: LinkedList<LinkedList<Dad>>
reason: argument mismatch; LinkedList<LinkedList<Dad>> cannot be converted to LinkedList<LinkedList<? extends Person>>
1 error
但 LinkedList
这应该如何工作?
【问题讨论】:
-
你会需要
LinkedList<? extends LinkedList<? extends Person>>。 -
谢谢你,路易斯这似乎工作
-
或者只是
List<? extends List<? extends Person>> -
是的,保罗,我知道我没有在方法中使用任何 LinkedList 的特殊成员,它可能只是 List
-
每个人一开始都会遇到困难。 Java 泛型可能太复杂了。这是我不久前问的一个类似问题。 stackoverflow.com/q/27465348/3973077
标签: java generics generic-programming generic-list