类型不匹配:无法从“某事物”转换为“某事物”

时间:2015-12-09 08:56:22

标签: java

我有这段代码:

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

为什么呢?我该如何纠正这个问题?

2 个答案:

答案 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;
        }
    }
}