关闭一个java.util.Iterator

12 浏览
0 Comments

关闭一个java.util.Iterator

我使用一个资源实现了一个自定义的java.util.Iterator,在最后使用close()方法释放资源。这个资源可以是java.sql.ResultSet、java.io.InputStream等等。

public interface CloseableIterator extends Iterator

{

public void close();

}

一些使用这个迭代器的外部库可能不知道它必须关闭。例如:

public boolean isEmpty(Iterable myiterable)

{

return myiterable.iterator().hasNext();

}

在这种情况下,有办法关闭这个迭代器吗?

更新:非常感谢当前的答案。我给每个人点个赞。当hasNext()返回false时,我已经关闭了迭代器。我的问题是当循环迭代在最后一次迭代之前中断,就像我的例子中显示的那样。

0