0

我有如下代码。

public class DefaultIterator<E> implements Iterator<E> {
private E[] array;
private int i = 0;

public DefaultIterator(E[] array) {
    this.array = array;
}

@Override
public boolean hasNext() {
    return false;
}

@Override
public E next() {
    return array[i++];
}

@Override
public void remove() {

}

}

// here is my execution.
    public Iterator<String> createNewIterator(Iterator<String>... generalIterators)    {
    return new DefaultIterator<Iterator<String>[]>(generalIterators);
}

我在执行代码处收到编译错误。有人可以解释它为什么失败以及如何解决它吗?

谢谢。

4

2 回答 2

3

所以抱怨是在字段声明、构造函数声明和方法声明之间没有一个泛型类型匹配。

你要:

public Iterator<String> createNewIterator(String... generalIterators)    {
    return new DefaultIterator<String>(generalIterators);
}
于 2013-06-06T01:38:59.703 回答
0

您的返回类型与预期不同!DefaultIterator<Iterator<String>[]>与您的返回类型不兼容Iterator<String> Choose DefaultIterator<Iterator<String>[]>,这应该可以解决。

于 2013-06-06T02:00:20.293 回答