在程序中我們常會使用List存儲類型來保存某一系列的數據,如字符串,對象等,當然,在存儲時沒問題,直接往里放即OK了,但在取出來用的時候,就要注意了,我們一般是用一個For循環來一一取出我們所需的對象數據,如:
for (Iterator it = Items.iterator(); it.hasNext();) {...ItemObject subject = (ItemObject ) it.next()---(1);System.out.println(subject.getId()---(2);)...}
即用List的iterator()迭代方法,取出對象,然后進行強制轉換,轉換為我們當時保存的對象類型,但這當Items對象不為空,且有數據內容時,這樣使用是沒問題的,如果Items對象為空,或Items對象不為空,但數據內容0(即沒有存儲相應的數據對象)時,這樣直接用FOR循環是會報錯的,通常會報:java.util.NoSuchElementException這樣的異常,意思即沒有相應的對象項,因為當我們取出了某一條數據后,進行了強制轉換,但取出的數據并不是我們強制轉換的對象類型,所以當然會報這樣的異常的.
其實在上面舉的代碼例子中,(1)這一步并不會報錯的,報錯其實是由(2)這一步引起的,因為subject并不是ItemObject 對象類型,但還要調用它的方法,所以肯定就會報錯的.\
所以一般在使用List的iterator()的方法時,最好在代碼前加一句判斷: if ( Items != null && Items.size()>0 ) {.........} ,這樣就可以盡情的使用,而不會報錯了.
posted on 2009-05-20 18:08
henry1451 閱讀(630)
評論(0) 編輯 收藏