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 に答える