我在學習設計模式從「深入淺出」系列。這本書有點過時(沒有泛型),所以我試圖重寫它的一部分。我應該寫包裝上Iterator
像Enumerator
方法工作,並與ArrayList的測試。的Java:實現通用的迭代
「原始」的版本看起來像這樣(下圖)。我試圖讓它成爲通用類,如<E>
甚至<T<E>>
,但它沒有奏效。我也想確保它可以用於任何類型的迭代器,不僅僅是ArrayList
就像ArrayList<T>
。什麼是實施這個的正確方法?
public class IteratorWrapper implements Enumeration {
Iterator iterator;
public IteratorWrapper(Iterator iterator){
this.iterator = iterator;
}
public boolean hasMoreElements(){
return iterator.hasNext();
}
//Return generic Type T
public Object nextElement(){
return iterator.next();
}
}
測試類
public class WrapperTest {
public static void main(String[] args){
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("element1");
arrayList.add("element2");
//This part will be rewritten when wrapper will work
IteratorWrapper iteratorWrapper = new IteratorWrapper(arrayList.iterator());
while(iteratorWrapper.hasMoreElements()){
System.out.println(iteratorWrapper.nextElement());
}
}
}
你是怎麼嘗試?你得到了什麼錯誤? – SLaks