Los patrones de diseño no son muy fuerte, pero creo que necesitas implementar un Adapter. Un Adapter es un patrón de diseño que se comporta como una clase o interface (en este caso, tendría que implementar Iterator, que es lo que necesitas) pero internamente usaría los métodos de StringTokenizer.
En un IDE, crea una clase tal que así:
public class StringTokenizerIterator implements Iterator<String> {
private StringTokenizer stk;
public StringTokenizer(StringTokenizer stk) {
this.stk = stk;
}
... // Ejercicio para el lector
}
y el mismo IDE ya te va a dar pistas de lo que tienes que ir haciendo... si estás estudiando Java, claro. :-)
A ver, la clase StringTokenizer es una clase del API bastante antigua. Hoy en día existe un interfaz más moderno, el Iteraror, cuyos métodos son hasNext() y next(), parecidos a los que tiene StringTokenizer (hasMoreElements() y nextElements().
He creado una clase (ClienteIterator) que espera un iterador para recorrerlo e imprimirlo por pantalla:
public class ClienteIterator {
public static void recorreIteracion ( Iterator i) {
while (i. hasNext ()) {
System . out . println (i. next ());
}
}
}
Lo que quiero es que el ClienteIterator pueda iterar la clase StringTokenizer, pero sin modificarla, tampoco la de ClienteIterator. Supongo que para ello es necesario crear una nueva clase intermediaria que se encargue de conectar a ClienteIterator y StringTokenizer, pero no sé como hacerlo.