日期:2014-05-20  浏览次数:20741 次

help:ArrayList.get(i)转换成int型的问题
今天碰到一个ArrayList取值问题,特请教各位.

        ArrayList   boxlist=new   ArrayList();
          for(int   n=0;n <10;n++){
          boxlist.add(new   Integer[j]);
          }

        本意是想boxlist的值逐一取出放进数据库中,为了知道取出的值是否正确,
      所以写了一个输出语句

        for   (int   m   =   0;   m   <   boxlist.size();   m++)   {
                System.out.println( "box的值= "+boxlist.get(m));
System.out.println(((Integer)boxlist.get(m)).intValue());
}

          可以在控制台中可以看到下列错误:
          box的值=[Ljava.lang.Integer;@d0d843
        java.lang.ClassCastException:   [Ljava.lang.Integer;

        请问这个怎么解决呢,我一直不明白,为什么会出现这种强制类型转换错误,把
        object类型转换成int型是应该用(((Integer)object).intValue())呀.

------解决方案--------------------
你这句写错了:
boxlist.add(new Integer[j]);
应该是:
boxlist.add(new Integer(j));

上面放的是数组,下面放的才是对象
如果在这里不能得到满意回答,请尝试到IT付费问答社区www.nlld.net提问


------解决方案--------------------
顶楼上的。
new Integer[j]创建的是长度为j的数组。。。
------解决方案--------------------
说的对顶楼上的
------解决方案--------------------
是啊,你定义成数组了.
------解决方案--------------------
粗心惹的祸