带迭代器的java泛型数组

0tdrvxhp  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(339)

我有如下代码。

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);
}

我在执行代码处得到编译错误。有人能解释为什么它会失败,以及如何修复它吗?
谢谢。

vfh0ocws

vfh0ocws1#

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

zfycwa2u

zfycwa2u2#

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

public Iterator<String> createNewIterator(String... generalIterators)    {
    return new DefaultIterator<String>(generalIterators);
}

相关问题