Cerrar un java.util.Iterator
He implementado una costumbrejava.util.Iterator usando un recurso que debería ser lanzado al final usando unclose()
método. Ese recurso podría ser unjava.sql.ResultSet, unajava.io.InputStream etc ...
public interface CloseableIterator<T> extends Iterator<T>
{
public void close();
}
Es posible que algunas bibliotecas externas que usan este iterador no sepan que debe estar cerrado. p.ej:
public boolean isEmpty(Iterable<T> myiterable)
{
return myiterable.iterator().hasNext();
}
En ese caso, ¿hay alguna manera de cerrar este iterador?
Actualizar: Muchas gracias por las respuestas actuales. Daré un (+1) a todos. Ya cierro el iterador cuandohasNext () devuelve falso Mi problema es cuando se rompe la iteración del bucleantes de la última iteración como se muestra en mi ejemplo.