Java 自动装箱和拆箱
Java 自动装箱和拆箱
在本教程中,我们将通过示例了解 Java 自动装箱和拆箱。
Java 自动装箱 - 包装对象的原始类型
在自动装箱中 ,Java 编译器自动将原始类型转换为它们对应的包装类对象。例如,
int a = 56;
// autoboxing
Integer aObj = a;
自动装箱 在使用 Java 集合时具有很大的优势。
示例 1:Java 自动装箱
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
//autoboxing
list.add(5);
list.add(6);
System.out.println("ArrayList: " + list);
}
}
输出
ArrayList: [5, 6]
在上面的例子中,我们创建了一个整数类型的数组列表。因此数组列表只能保存 Integer
的对象 输入。
注意这一行,
list.add(5);
在这里,我们传递原始类型值。然而,由于自动装箱 ,原始值会自动转换为 Integer
对象并存储在数组列表中。
Java 拆箱 - 将对象包装成原始类型
在拆箱中 ,Java 编译器自动将包装类对象转换为其对应的原始类型。例如,
// autoboxing
Integer aObj = 56;
// unboxing
int a = aObj;
喜欢自动装箱 , 拆箱 也可以与 Java 集合一起使用。
示例 2:Java 拆箱
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
//autoboxing
list.add(5);
list.add(6);
System.out.println("ArrayList: " + list);
// unboxing
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 处的对象 .但是,由于拆箱 , 对象自动转换成原始类型int
并分配给变量 a .
java