是这个样子的,如果你的ArrayList不指定泛型的话,list.get(0)默认拿到的是一个Object型对象,你在前面加Integer执行强转时首先会执行String.valueOf()方法,将Object转为String,下面String强转为Integer就出问题了,String转Intege应该用Integer.parseInt(String x),传入的应该是一个String,list.get(0)是个Object对象(此时没有强转,不会执行String.valueOf()方法),所以你的代码应该是这样Integer num = Integer.parseInt((String)list.get(0));,但是这样又会报NumberFormatException异常,字符串abc转不了Integer,所以你还是换个list.add("123") |