Java 自动装箱和拆箱
Java 自动装箱和拆箱能将数据从原始类型和包装类型之间自动转换。在本教程中,我们将借助示例了解 Java 自动装箱和拆箱。
Java 自动装箱和拆箱能将数据从原始类型和包装类型之间自动转换。在本教程中,我们将借助示例了解 Java 自动装箱和拆箱。
Java 自动装箱
Java 编译器自动将原始类型转换为它们相应的包装类对象,这个过程称为 自动装箱。例如,
int a = 56;
// 自动装箱
Integer aObj = a;
自动装箱在处理 Java 集合时很有用。
示例 1:Java 自动装箱
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
// 自动装箱
list.add(5);
list.add(6);
System.out.println("ArrayList: " + list);
}
}
输出
ArrayList: [5, 6]
在上面的例子中,我们创建了一个整数类型的 ArrayList,ArrayList 中只能保存 Integer
类型的对象。
注意这行语句,
list.add(5);
在这里,我们传递的值是原始类型。但是自动装箱会自动将原始类型的值转换为 Integer
对象并存储在数组列表中。
Java 拆箱
Java 编译器能自动将包装类对象转换为其相应的原始类型,这个过程称为 拆箱。例如,
// 自动装箱
Integer aObj = 56;
// 拆箱
int a = aObj;
与自动装箱一样,拆箱也可以用于 Java 集合。
示例 2:Java 拆箱
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
// 自动装箱
list.add(5);
list.add(6);
System.out.println("ArrayList: " + list);
// 拆箱
int a = list.get(0);
System.out.println("Value at index 0: " + a);
}
}
输出
ArrayList: [5, 6]
Value at index 0: 5
在上面的例子中,注意这一行,
int a = list.get(0);
在这里, get()
方法返回索引 0
处的 Integer
对象, 但是拆箱会自动将包装类型转换为原始类型 int
。