Je suis en train d'apprendre les design patterns de la série 'Head First'. Le livre est un peu dépassé (pas de types génériques), donc j'essaie de le réécrire. Je suis censé écrire Wrapper sur Iterator
pour fonctionner comme les méthodes Enumerator
et le tester avec ArrayList.
La version "originale" ressemblait à cela (ci-dessous). J'ai essayé de faire une classe générique telle que ou même >
, mais cela n'a pas fonctionné. Je veux aussi être sûr que cela fonctionnera pour n'importe quel type d'itérateur, pas seulement ArrayList
comme ArrayList
. Quelle est la bonne manière de mettre en œuvre cela ?
public class IteratorWrapper implements Enumeration {
Iterator iterator;
public IteratorWrapper(Iterator iterator){
this.iterator = iterator;
}
public boolean hasMoreElements(){
return iterator.hasNext();
}
//Retourne le type générique T
public Object nextElement(){
return iterator.next();
}
}
Classe de test
public class WrapperTest {
public static void main(String[] args){
ArrayList arrayList = new ArrayList();
arrayList.add("element1");
arrayList.add("element2");
//Cette partie sera réécrite lorsque le wrapper fonctionnera
IteratorWrapper iteratorWrapper = new IteratorWrapper(arrayList.iterator());
while(iteratorWrapper.hasMoreElements()){
System.out.println(iteratorWrapper.nextElement());
}
}
}