这样的一段代码:
    public void Insert(Item item){
        ListIterator ins = m_Data.listIterator();
        if(Search(item, ins)){
            ((Item)ins).m_nDF += item.m_nDF;
            ((Item)ins).m_nTF += item.m_nTF;
            
        }else{
            Item pItem = new Item(item);
            m_Data.add(pItem);
        }
    }
    
    
   protected boolean Search(Item pitem, ListIterator it{               while(it.hasNext()){
            Item iitem = (Item)it.next();
            if(iitem.Word.compareTo(pitem.Word) == 0){  //找到
                return true;
            }
        }
        return false;
    }
第四行,在编译的时候正确,在运行时报错....

解决方案 »

  1.   

    我是想通过Search找到容器中存在那一项item,用ins指向该项并取出该值来......
      

  2.   

    ((Item)ins).m_nDF += item.m_nDF;m_nDF是不是基本类型或者String类型?还有,什么错误信息?
      

  3.   

    m_nDF是Item这个类中的一个int型变量..报这样的错误Exception in thread "main" java.util.NoSuchElementException
      

  4.   

    search 方法应该返回Item,而不是boolean ((Item)ins).m_nDF Iterator -- > Item能不错吗?
    如果我没猜错的话,异常叫ClassCastException 如果不是 ClassCastException 
    那么就在
               if(iitem.Word.compareTo(pitem.Word) == 0){  //找到
    有错看看吧!
      

  5.   

    (Item)ins 如果指的是(Item)ins.next();那么 就是ins已经hasNext()为false;
      

  6.   


    /**
     * Thrown by the <code>nextElement</code> method of an 
     * <code>Enumeration</code> to indicate that there are no more 
     * elements in the enumeration. 
     *
     * @author  unascribed
     * @version 1.20, 01/23/03
     * @see     java.util.Enumeration
     * @see     java.util.Enumeration#nextElement()
     * @since   JDK1.0
     */
    public
    class NoSuchElementException extends RuntimeException {