Java 自动装箱和拆箱

在本教程中,我们将借助示例学习Java自动装箱和拆箱。

Java自动装箱-包装器对象的原始类型

自动装箱中,Java编译器会自动将原始类型转换为其相应的包装器类对象。例如,

inta=56;//自动装箱IntegeraObj=a;

使用Java集合时,自动装箱具有很大的优势。

示例1:Java自动装箱

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<Integer>list=newArrayList<>();//自动装箱list.add(5);list.add(6);System.out.println("ArrayList:"+list);}}

输出结果

ArrayList:[5,6]

在上面的示例中,我们创建了一个Integer类型的数组列表。因此,数组列表只能包含Integer类型的对象。

注意这一行,

list.add(5);

在这里,我们传递原始类型值。但是,由于自动装箱,原始值会自动转换为Integer对象并存储在数组列表中。

Java拆箱-包装器对象为原始类型

拆箱中,Java编译器会自动将包装器类对象转换为其相应的原始类型。例如,

//自动装箱IntegeraObj=56;//拆箱inta=aObj;

自动装箱一样,拆箱也可以与Java集合一起使用。

示例2:Java拆箱

importjava.util.ArrayList;classMain{publicstaticvoidmain(String[]args){ArrayList<Integer>list=newArrayList<>();//自动装箱list.add(5);list.add(6);System.out.println("ArrayList:"+list);//拆箱inta=list.get(0);System.out.println("Valueatindex0:"+a);}}

输出结果

ArrayList:[5,6]Valueatindex0:5

在上面的示例中,请注意以下行:

inta=list.get(0);

这里,get()方法返回索引0处的对象。但是,由于拆箱,对象被自动转换为原始类型int并分配给变量a。

编辑于2024-05-20 11:56