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

关于类型转换
                String d[]=request.getParameterValues("s");
List l=new ArrayList();
for(int a=0; a<d.length; a++) {
l.add(d[a]);
}
for(int a=0; a<l.size(); a++) {
System.out.print(l.size());
if(l.get(a).equals("")) {
System.out.print("已删除");
l.remove(a);
a-- ;
}
}
int q[]=new int[l.size()];
for(int a=0; a<l.size(); a++) {
q[a]=(Integer)l.get(a);
System.out.println(q[a]+2);
}


代码是这样的..  
但是q[a]=(Integer)l.get(a);报错
java.lang.String cannot be cast to java.lang.Integer
请问要如何改才能改为整形呢? 
求解救  谢谢
------解决方案--------------------
q[a]=(Integer)l.get(a);
改成
q[a]=Integer.parseInt(l.get(a)+"");
------解决方案--------------------
引用:
引用:
q[a]=(Integer)l.get(a);
改成
q[a]=Integer.parseInt(l.get(a)+"");

为什么要+""  呢?

那你因为楼主没用泛型限制编译器从l.get(a)获得的是Object类型,而Integer.parseInt(String s);
接收的参数是String所以+""转成String类型。
还有楼主这代码依然问题。因为ArrayList不是线程安全的。你在遍历的同时又去对它进行删改操作要使用Iterator迭代器。
楼主先好好看看api
------解决方案--------------------
。。。。“”就是字符串串啊。。。。
------解决方案--------------------
引用:
引用:引用:引用:
q[a]=(Integer)l.get(a);
改成
q[a]=Integer.parseInt(l.get(a)+"");

为什么要+""  呢?
那你因为楼主没用泛型限制编译器从l.get(a)获得的是Object类型……
java数据类型之间的转换啊。楼主查下API?
------解决方案--------------------
楼主可以看下StringBuffer
加上“+” 就直接将I.get(a)转化成了String类型了