1 import java.util.ArrayList; 2 3 public class ExceptionTest { 4 5 public static void main(String[] args) { 6 7 int sum = 0; 8 9 ArrayList al = new ArrayList(); 10 for (int i = 0; i < 10; i++) { 11 al.add(new Integer(i)); 12 } 13 //al.add("string"); 14 for(Object o:al){ 15 sum = sum +(Integer)o; 16 } 17 System.out.println(sum); 18 } 19 }
编写并运行程序,去掉注释符号再次运行程序,理解程序为何会产生的异常。(为什么???)
你的ArrayList没有设置泛型,这个是很不好的编程习惯,所以默认就是Object,你可以加Integer,Long,String,Date等类型,都能编译通过,但是当遍历到最后一个类型是String,在强制转换成Integer就会抛出运行时异常。
蟹蟹
后加进去的String
怎么能强制转换为Integer呢 对吧 加油!
蟹蟹