先上代码。
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) 就可以了