先上代码。
import java.util.*;
import java.io.*;
class Test {
public static void main(String[] args) {
ArrayList<Integer> ss = new ArrayList<Integer>();
ss.add(0);
int i = ss.get(0); //1
int j = ss.get(0).intValue(); // 2
System.out.println(i);
System.out.println(ss.get(0));
sum(ss);
}
public static void sum(ArrayList list) {
int i = list.get(0).intValue(); //3
System.out.println(i);
}
}
从1.5开始Java支持自动拆箱,装箱操作
ArrayList list:可以存入任何类型的数据,默认是Object
ArrayList<Integer> list:只能存入int/Integer类型的数据,使用了泛型,表明只能存入该种类型数据
1和2都对,int和integer之间能够自动的进行封包和拆包,这是语言本身的特性
3不行,是因为你的形参问题
把 public static void sum(ArrayList list) 改成 public static void sum(ArrayList<Integer> list) 就可以了