posts - 60,comments - 71,trackbacks - 0


                     在程序中我們常會使用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 閱讀(640) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 钟祥市| 榕江县| 民县| 屏东县| 宣城市| 洛宁县| 皮山县| 原阳县| 七台河市| 荥经县| 灵石县| 三原县| 禄劝| 牡丹江市| 安达市| 玉山县| 从江县| 澜沧| 旺苍县| 冷水江市| 民权县| 镇江市| 元氏县| 翁源县| 筠连县| 辽源市| 区。| 永川市| 青田县| 志丹县| 大方县| 静安区| 沽源县| 上高县| 普定县| 峨眉山市| 当涂县| 泉州市| 钦州市| 漯河市| 盐亭县|