2010-07-15 20 views
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時,我已經關閉了迭代器。我的問題是循環迭代在之前中斷,如我的示例中所示。

回答