下面哪兩個應該用來確保所有遊標都關閉?成語關閉遊標
Cursor c = getCursor();
if(c!=null && c.getCount()>0){
try{
// read values from cursor
}catch(..){}
finally{
c.close();
}
}//end if
OR
Cursor c = getCursor();
try{
if(c!=null && c.getCount()>0){
// read values from cursor
}//end if
}catch(..){
}finally{
c.close();
}
編輯:
幾個問題:
1.我們需要調用close()在具有0計數的光標?
2.因爲在這種情況下,第一個習慣用法,close()永遠不會被調用。它假定對於沒有元素的遊標,遊標永遠不會被打開。這是一個有效的假設嗎?
請指教。
感謝您的回答! – 2010-11-11 17:19:31
我不認爲使用getCount是一個好方法。如果你用戶moveToFirst,你可以得到更好的性能 – wangzhengyi 2014-09-13 02:03:04
@wangzhengyi - 這是一個有效的點moveToFirst更高性能,並回答「結果集中是否有任何東西」的問題......但OP在他們的例子中使用了getCount(),所以我繼續在這裏。 – 2014-09-14 22:57:55