我正在实现一个迭代器来展平列表列表,但它给了我一个错误,我无法理解它为什么会发生:
错误是:类型不匹配:无法转换java.util.Iterator<java.util.List<T>>
为java.util.Iterator<java.util.List<T>>
我很困惑,为什么它会尝试将类型转换为自身?为什么不成功?是因为它被用于内部类吗?
public class FlattenList<T> implements Iterable<T>{
private List<List<T>> lists;
public FlattenList(List<List<T>> list){
this.lists = list;
}
public Iterator<T> iterator(){
return new ListIterator();
}
class ListIterator<T> implements Iterator<T>{
private Iterator<List<T>> listsiterator;
private Iterator<T> listiterator;
public ListIterator(){
if (lists != null)
listsiterator = lists.iterator(); // The conversion mismatch here
}
}
//..
}
}