大家好,我遇到一个 ArrayList  的取值问题.代码如下:  for (int j = 0; j < empl.size(); j++)
  {
      //1  eid = (Integer)empl.get(j);
      2  eid = Integer.parseInt((String)empl.get(j));
      3  System.err.println("------employeeID ["+j+"]"+eid);
  }这里,如果我用 1 取,编译器会报错.我用 2 取,不报错,但是运行时,不会运行到 3 
请问,我这里有什么问题,应该怎么解决?
非常感谢!

解决方案 »

  1.   

    用itertor的方法来取相似于for (Enumeration e = v.elements() ; e.hasMoreElements() ;) {
             System.out.println(e.nextElement());
         }
      

  2.   

    eid = (Integer)empl.get(j);
    这样的类型转换方法就是不对的...
      

  3.   

    你向ArrayList中add的类型是什么类型,取出时就要造型成什么类型,因为get的对象是Object的2对,说明你add的类型是String的,这时你用1取,会报ClassCastException,造型异常另外System.err.println会打印信息
      

  4.   

    eid = Integer.valueOf(empl.get(j)).intValue();
      

  5.   

    for (int j = 0; j < empl.size(); j++)
      {
          //1  eid = (Integer)empl.get(j);
          2  eid = Integer.parseInt((String)empl.get(j));
          3  System.err.println("------employeeID ["+j+"]"+eid);
      }
    如果EDI是INT 类型的话 :eid=Integer.parseInt(empl.get(j).toString);
      

  6.   

    Integer eid;
    for (int j = 0; j < empl.size(); j++){
       Object obj = empl.get(j);
       if(obj==null)continue;
       if(!obj.getClass().getName().equals("java.lang.Integer")) continue;
       eid = (Integer)empl.get(j);
       System.err.println("------employeeID ["+j+"]"+eid);}
      

  7.   

    for (Object o : empl) {
        System.out.println(o);
    }
      

  8.   

    我觉得和你arraylist里面存放的值有关系.
    不妨打出来
    (String)empl.get(j);