我有这段代码:
public class ListCollection<T> implements Iterable<T> {
private int size;
private ListNode<T> first;
private ListNode<T> last;
...
private class ListNode<E> {
private ListNode<E> next;
private ListNode<E> previous;
private E value;
public ListNode() {
super();
}
}
private class ListIterator<T> implements Iterator<T> {
ListNode<T> next, previous;
public ListIterator() {
next = first;
}
我想初始化迭代器。在行next = first我收到错误消息。
类型不匹配:无法从ListCollection.ListNode转换为ListCollection.ListNode
为什么呢?我该如何纠正这个问题?
答案 0 :(得分:3)
更改
private class ListIterator<T> implements Iterator<T>
到
private class ListIterator implements Iterator<T>
否则ListIterator<T>
使用的类型参数T与ListCollection<T>
中声明的类型参数T不同。
答案 1 :(得分:0)
你可以同样改变你的代码,即整数,
private int size;
private ListNode<Integer> first;
private class ListNode<E> {
private ListNode<E> next;
private ListNode<E> previous;
private E value;
public ListNode() {
super();
}
}
private class ListIterator<T> implements Iterator<T> {
ListNode<Integer> next, previous;
public ListIterator() {
next = first;
}
}
}