报错地方代码如下:while (rs.next()) {
Iterator it = handlist.iterator();
while(it.hasNext()){
 if(((HandVO)it.next()).getCarrier().equals(rs.getString("carrier")) &&
            ((HandVO)it.next()).getFromCode().equals(rs.getString("FromCode")) &&
            ((HandVO)it.next()).getTocode().equals(rs.getString("ToCode"))
){
                                      this.ISContain = true;
           break;
        } 
 }

红色的那句,总是报NoSuchElement的错误。实现的功能也就是reseltSet结果的carrier,FromCode,ToCode。如果和handlist其中一条一样,就跳出循环之后不存数据库。错误原因是什么啊?

解决方案 »

  1.   

    (HandVO)it.next().getCarrier()得到的是什么类型的
    rs.getString("carrier")是String类型的
    两者能equals吗
      

  2.   

    carrier\FromCode\ToCode??
    其中有字段没有? 或者名称不对?
      

  3.   

     实现的功能也就是reseltSet结果的carrier,FromCode,ToCode。如果和handlist其中一条一样,如果是这样的话,IF里面是不是应该用 || 而不是&& 呀。你的 handlist 里面是不是放的HandVO 对象
      

  4.   

    (HandVO)it.next()).getCarrier()
      

  5.   

    你的handlist是什么类型的?里面有迭代元素么?
      

  6.   

    Iterator的it.next()的作用是返回当前索引处的对象,并且把索引指向下一个元素,当下次调用it.next()两次的对象是不一样了  楼主if里的三个条件应该是想针对同一对象吧
      

  7.   

    (突然发现,HandVO)it.next()  这是干什么用的?为什么要加next?
      

  8.   

    找到问题,我红色字体it.next()了3次。每it.next()一次,记录都到了下一条。终于,呵呵。也谢谢大家,我马上回来结贴
      

  9.   

    对,it.next() 应该定义成一个变量