在 Java 中,Wrapper 类(也叫封装类)是指将原始数据类型(如 int
、char
等)封装成对象的类。Java 的 Wrapper 类位于 java.lang
包中,它们使得基本数据类型能够作为对象来使用,从而可以在需要对象的场合(例如,集合类 ArrayList
、HashMap
等)使用基本数据类型。
Java 中的 Wrapper 类对应于每种基本数据类型,具体如下:
基本数据类型 | Wrapper 类 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Wrapper 类的作用:
- 自动装箱与拆箱(Autoboxing and Unboxing):Java 提供了自动将基本数据类型转换为 Wrapper 类对象(装箱)和将 Wrapper 类对象转换为基本数据类型(拆箱)的机制。通过自动装箱与拆箱,可以更方便地在基本数据类型和对象之间进行转换。
- 可以作为对象使用:由于这些类是对象类型,因此可以作为参数传递给集合类(如
ArrayList
、HashMap
)等。 - 提供常用的方法:Wrapper 类提供了一些有用的方法,如转换成字符串、比较大小、解析字符串为基本类型等。
示例:自动装箱和拆箱
自动装箱(Autoboxing)
Java 会自动将基本数据类型转换为对应的 Wrapper 对象:
public class WrapperExample {
public static void main(String[] args) {
int num = 10;
// 自动装箱,将基本数据类型 int 转换为 Integer 对象
Integer numWrapper = num;
System.out.println("Integer object: " + numWrapper);
}
}
自动拆箱(Unboxing)
Java 会自动将 Wrapper 对象转换为对应的基本数据类型:
public class WrapperExample {
public static void main(String[] args) {
Integer numWrapper = 10; // 自动装箱
int num = numWrapper; // 自动拆箱,将 Integer 转换为 int
System.out.println("Primitive int: " + num);
}
}
Wrapper 类的常用方法
每个 Wrapper 类提供了一些常用的方法,例如:
parseInt()
:将字符串解析为对应的基本数据类型。
String str = "123";
int num = Integer.parseInt(str); // 将字符串转换为 int
System.out.println(num);
toString()
:将 Wrapper 对象转换为字符串。
Integer numWrapper = 100;
System.out.println(numWrapper.toString()); // 输出 "100"
valueOf()
:将基本数据类型或字符串转换为 Wrapper 对象。
Integer numWrapper = Integer.valueOf(123); // 将 int 转换为 Integer
Boolean boolWrapper = Boolean.valueOf("true"); // 将 String 转换为 Boolean
使用场景
- 集合类:像
ArrayList
,HashMap
等只能存储对象,而不能存储基本数据类型。因此,基本数据类型需要通过 Wrapper 类来作为对象存储。
ArrayList<Integer> list = new ArrayList<>();
list.add(10); // 自动装箱,int 变为 Integer
list.add(20);
System.out.println(list);
- 反射:一些反射方法需要对象作为参数,Wrapper 类允许我们通过反射操作基本数据类型。
总结
Java 的 Wrapper 类提供了一种将基本数据类型转换为对象的机制,这使得基本数据类型可以在需要对象的场合中使用,并且提供了很多有用的方法来处理数据类型的转换和操作。