我在学习设计模式从“深入浅出”系列。这本书有点过时(没有泛型),所以我试图重写它的一部分。我应该写包装上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