我試圖用Iterator作爲內部類實現集合接口。一個實現集合的ArrayCollection類具有一個通用數組(這是說類成員是否通用的正確方法?)。 a screenshot from IDE集合和迭代器接口作爲內部類的實現
public class ArrayCollection<T> implements Collection<T> {
private T[] m = (T[])new Object[10];
然而,當我在一個Iterator接口實現下一個()的方法我不斷收到不兼容類型的錯誤。但是,如果創建一個ArrayIterator,則非泛型類編譯器不再有數組類型轉換的問題。 an error screenshot from IDE
private class ArrayIterator<T> implements Iterator<T> {
private int cursor = 0;
@Override
public boolean hasNext() {
return this.cursor >= ArrayCollection.this.size();
}
@Override
public T next() {
return ArrayCollection.this.m[cursor++];
}
}
所以,我有幾個問題:
爲什麼編譯器可以定義T []數組米型,如果我做一個ArrayIterator非通用?
是否只有內部類實現/擴展通用接口/類可以是非泛型的?
你可以在這裏分享代碼嗎? – Mureinik
添加代碼。還有IDE的鏈接截圖。我的堆棧溢出評級太低,無法將圖像直接添加到問題中。 – user2992672
絕不添加圖片,添加代碼 –