[英]java generic array with iterator
我有如下代碼。
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);
}
我在執行代碼處收到編譯錯誤。 有人可以解釋為什么會失敗以及如何解決嗎?
謝謝。
因此,抱怨是字段聲明,構造函數聲明和方法聲明之間沒有任何泛型類型匹配。
你要:
public Iterator<String> createNewIterator(String... generalIterators) {
return new DefaultIterator<String>(generalIterators);
}
您的退貨類型比預期的還多! DefaultIterator<Iterator<String>[]>
與Iterator<String>
不兼容。 Choose DefaultIterator<Iterator<String>[]>
作為返回類型,這應該可以解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.