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 阅读(600) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: