本帖最后由 yaohsieh 于 2013-12-28 00:37 编辑
首先看报错信息:- Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
- at Test.main(Test.java:13)
复制代码 错误是ClassCastException:类型转换异常。
- al.add(1);//ArrayList集合里面都是存对象,自动装箱为Integer
- al.add(2);
- al.add(3);
复制代码 按照你之前的写法:
- while (it.hasNext()) {
- System.out.println((String) it.next()); /*这里是把Integer强转为String,当然会类型转换异常的错误.*/
- }
复制代码 按照你后面的写法:
- while (it.hasNext()) {
- System.out.println(String.valueOf(it.next()));/*这里是调用了String类下面的静态方法valueOf(Object obj),返Objec参数的字符串表示形式.返回类型是String,运行不会出错,这里完全不用你前面定义String.*/}
复制代码
|