「Head First」シリーズのデザインパターンを学んでいます。この本は少し古くなっています (ジェネリック型はありません) ので、一部を書き直そうとしています。メソッドのように動作するようにWrapperを記述し、 ArrayList でテストすることになっています。Iterator
Enumerator
「元の」バージョンは次のように見えました(下)。<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());
}
}
}