在 Java 中,Wrapper 类(也叫封装类)是指将原始数据类型(如 intchar 等)封装成对象的类。Java 的 Wrapper 类位于 java.lang 包中,它们使得基本数据类型能够作为对象来使用,从而可以在需要对象的场合(例如,集合类 ArrayListHashMap 等)使用基本数据类型。

Java 中的 Wrapper 类对应于每种基本数据类型,具体如下:

基本数据类型

Wrapper 类

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

Wrapper 类的作用:

  1. 自动装箱与拆箱(Autoboxing and Unboxing):Java 提供了自动将基本数据类型转换为 Wrapper 类对象(装箱)和将 Wrapper 类对象转换为基本数据类型(拆箱)的机制。通过自动装箱与拆箱,可以更方便地在基本数据类型和对象之间进行转换。
  2. 可以作为对象使用:由于这些类是对象类型,因此可以作为参数传递给集合类(如 ArrayListHashMap)等。
  3. 提供常用的方法: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 类提供了一种将基本数据类型转换为对象的机制,这使得基本数据类型可以在需要对象的场合中使用,并且提供了很多有用的方法来处理数据类型的转换和操作。