posts - 60,comments - 71,trackbacks - 0


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

                     即用List的iterator()迭代方法,取出對(duì)象,然后進(jìn)行強(qiáng)制轉(zhuǎn)換,轉(zhuǎn)換為我們當(dāng)時(shí)保存的對(duì)象類型,但這當(dāng)Items對(duì)象不為空,且有數(shù)據(jù)內(nèi)容時(shí),這樣使用是沒問題的,如果Items對(duì)象為空,或Items對(duì)象不為空,但數(shù)據(jù)內(nèi)容0(即沒有存儲(chǔ)相應(yīng)的數(shù)據(jù)對(duì)象)時(shí),這樣直接用FOR循環(huán)是會(huì)報(bào)錯(cuò)的,通常會(huì)報(bào):java.util.NoSuchElementException這樣的異常,意思即沒有相應(yīng)的對(duì)象項(xiàng),因?yàn)楫?dāng)我們?nèi)〕隽四骋粭l數(shù)據(jù)后,進(jìn)行了強(qiáng)制轉(zhuǎn)換,但取出的數(shù)據(jù)并不是我們強(qiáng)制轉(zhuǎn)換的對(duì)象類型,所以當(dāng)然會(huì)報(bào)這樣的異常的.

                       其實(shí)在上面舉的代碼例子中,(1)這一步并不會(huì)報(bào)錯(cuò)的,報(bào)錯(cuò)其實(shí)是由(2)這一步引起的,因?yàn)閟ubject并不是ItemObject 對(duì)象類型,但還要調(diào)用它的方法,所以肯定就會(huì)報(bào)錯(cuò)的.\

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

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 绵竹市| 大兴区| 永修县| 横峰县| 合水县| 琼中| 新闻| 神木县| 景洪市| 广安市| 湘潭市| 吴江市| 库尔勒市| 甘孜县| 左权县| 岑溪市| 晋中市| 昭平县| 静海县| 胶州市| 沅江市| 金昌市| 彩票| 巴林左旗| 金堂县| 惠东县| 大荔县| 民勤县| 宾川县| 宁晋县| 前郭尔| 长白| 靖远县| 青铜峡市| 伊宁县| 昭觉县| 磐安县| 卢湾区| 西藏| 大足县| 五寨县|