在java方法中,我必须返回以下内容:
Iterator<List<Person>>
我编写了创建新列表的方法,将人员添加到其中:
LinkedList<Person> list = new LinkedList<Person>();
...
list.add(new Person(...))
...
但是当我需要返回迭代器时,因为我有方法签名,我很困惑。
返回:
return list.iterator();
导致编译错误:
Type mismatch: cannot convert from Iterator<Person> to Iterator<List<Person>>
为了遵循方法签名,我应该在方法中更改什么?
由于
答案 0 :(得分:0)
Iterator
的类型参数是它将返回的类型,而不是将使用迭代器的集合的类型。
在您的情况下,请返回Iterator<Person>
答案 1 :(得分:0)
这种方法无济于事,但不这么认为。
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class Exam2 {
public static Iterator<List<Person>> getIterator(){
LinkedList<Person> list = new LinkedList<Person>();
list.add(new Person());
LinkedList<List<Person>> Parentlist = new LinkedList<List<Person>>();
Parentlist.add(list);
return Parentlist.iterator();
}
public static void main(String[] args) {
System.out.println( getIterator() );
}
}
class Person{
}