25
我已經實現了一個自定義的java.util.Iterator使用一個資源,該資源應該在最後使用close()
方法釋放。這種資源可以是java.sql.ResultSet中,一個的java.io.InputStream等等關閉java.util.Iterator
public interface CloseableIterator<T> extends Iterator<T>
{
public void close();
}
使用這個迭代器可能不知道它必須關閉,一些外部庫。例如:
public boolean isEmpty(Iterable<T> myiterable)
{
return myiterable.iterator().hasNext();
}
在這種情況下,有沒有辦法關閉這個迭代器?
更新:非常感謝您的當前答案。我會給每個人一個(+1)。當hasNext()返回false時,我已經關閉了迭代器。我的問題是循環迭代在之前中斷,如我的示例中所示。