import java.util.*;public class ListTest {
public static void main(String[] args){
List<Integer> list=new LinkedList<Integer>();
list.add(1);
list.add(4);
list.add(-4);
for(Iterator it=list.iterator();it.hasNext();){
Integer i=it.next();  //此处报错
System.out.println(i);
}
}
}错误提示是:无法将Object对象转为Integer对象。
我认为:在声明list对象时已经用<Integer>方法将放入list中的对象限定为Integer了,可是为什么还是会有错呢???

解决方案 »

  1.   

    package test;
    import java.util.*;public class ListTest {
    public static void main(String[] args){
    List<Integer> list=new LinkedList<Integer>();
    list.add(1);
    list.add(4);
    list.add(-4);
    for(Iterator it=list.iterator();it.hasNext();){
    Integer i=(Integer)it.next();  //此处报错
    System.out.println(i);
    }
    }
    }
      

  2.   

    it.next()那里需要个显式类型转换
      

  3.   

    同意楼上
    Integer i=(Integer)it.next();  
    加个强制类型转换就行了