posts - 60,comments - 71,trackbacks - 0


                     在程序中我們常會使用List存儲類型來保存某一系列的數(shù)據(jù),如字符串,對象等,當然,在存儲時沒問題,直接往里放即OK了,但在取出來用的時候,就要注意了,我們一般是用一個For循環(huán)來一一取出我們所需的對象數(shù)據(jù),如:
           
                     for (Iterator it = Items.iterator(); it.hasNext();) {...ItemObject subject = (ItemObject ) it.next()---(1);System.out.println(subject.getId()---(2);)...}

                     即用List的iterator()迭代方法,取出對象,然后進行強制轉換,轉換為我們當時保存的對象類型,但這當Items對象不為空,且有數(shù)據(jù)內容時,這樣使用是沒問題的,如果Items對象為空,或Items對象不為空,但數(shù)據(jù)內容0(即沒有存儲相應的數(shù)據(jù)對象)時,這樣直接用FOR循環(huán)是會報錯的,通常會報:java.util.NoSuchElementException這樣的異常,意思即沒有相應的對象項,因為當我們取出了某一條數(shù)據(jù)后,進行了強制轉換,但取出的數(shù)據(jù)并不是我們強制轉換的對象類型,所以當然會報這樣的異常的.

                       其實在上面舉的代碼例子中,(1)這一步并不會報錯的,報錯其實是由(2)這一步引起的,因為subject并不是ItemObject 對象類型,但還要調用它的方法,所以肯定就會報錯的.\

                     所以一般在使用List的iterator()的方法時,最好在代碼前加一句判斷:  if ( Items  !=  null   &&  Items.size()>0  )  {.........} ,這樣就可以盡情的使用,而不會報錯了.

          posted on 2009-05-20 18:08 henry1451 閱讀(635) 評論(0)  編輯  收藏

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 梧州市| 巧家县| 巨鹿县| 耿马| 建始县| 汉沽区| 北宁市| 德兴市| 永修县| 沂南县| 荥阳市| 河池市| 安丘市| 慈溪市| 和平区| 桐庐县| 视频| 台前县| 衡东县| 宁蒗| 张掖市| 宜黄县| 织金县| 巴马| 固镇县| 海丰县| 文水县| 桂东县| 黔江区| 墨江| 洛浦县| 襄汾县| 凤山市| 河间市| 铁岭县| 太保市| 宜章县| 明光市| 东港市| 达孜县| 九江县|