一、举例说明拆箱/装箱思想(主要用于集合)
拆箱/装箱是相对于8种包装类来讲的。8种包装类为:Character、Byte、Short、Integer、Long、Boolean、Float、Double。
若在泛型中定义了一个如上包装类的参数类型,则在传递参数时,可以直接用对应的基本类型的参数传递。
装箱:基本数据类型自动转换为其对应的包装类,例如int -> Integer;
拆箱:包装类自动转换为基本数据类型,例如Integer -> int。
二、示例及说明
public class BoxTest
{
List<Integer> list = new ArrayList<Integer>();
list.add(3); //自动从int基本数据类型转换为Integer类型,并放到集合当中(装箱)
int a = 4;
list.add(2 + a); //把a的值和2进行加法运算后,转换为Integer类型,再放到集合当中(装箱)
for(Integer in : list)
{
System.out.println(in);
}
a = list.get(0); //把Integer类型的list.get(0)自动转换为int基本类型,再赋值给a(拆箱)
System.out.println(a);
}
}