【发布时间】:2014-10-15 15:15:07
【问题描述】:
我正在编写一个遍历列表的迭代器内部类。除了 remove 方法之外,我相信我已经正确实现了迭代器的所有方法,但是我收到一条错误消息“绑定不匹配:类型 E 不是 List.Node 类型的有界参数>的有效替代品”。我相信这与让 Node> 在我的代码顶部实现 Iterable 相关,但如果不需要,我不想更改它。关于我应该做什么的任何可能的建议?
public class List<T extends Comparable<L>> implements Iterable<L> {
private class Node<N extends Comparable<N>> {
private N data;
private Node<N> next;
}
protected Node<L> head;
public Iterator<L> iterator() {
return new ListIterator<L>();
}
public class ListIterator<E extends Comparable<E>> implements Iterator<E> {
private Node<E> N = (Node<E>) head; //"Bound mismatch: The type E is not a valid substitute for the bounded parameter <D extends Comparable<D>> of the type List<T>.Node<D>"
public boolean hasNext() {
return (N.next != null);
}
public E next() {
if (!hasNext())
throw new NoSuchElementException();
else {
N = N.next;
return N.data;
}
}
public void remove() {
}
}
}
【问题讨论】:
标签: java linked-list iterator inner-classes