Java 包装类

Java中的包装类用于将基本类型intcharfloat 等)转换为相应的对象。

8种基本类型都有其对应的包装类。

基本类型 包装类
byte Byte
boolean 布尔型
char 字符
双精度浮点数 Double
浮点数 Float
int 整数
long Long
short Short

将基本类型转换为包装类对象

我们也可以使用valueOf()方法将基本类型转换为相应的对象。

示例 1:基本类型转换为包装类对象

class Main {
  public static void main(String[] args) {

    // create primitive types
    int a = 5;
    double b = 5.65;

    //converts into wrapper objects
    Integer aObj = Integer.valueOf(a);
    Double bObj = Double.valueOf(b);

    if(aObj instanceof Integer) {
      System.out.println("An object of Integer is created.");
    }

    if(bObj instanceof Double) {
      System.out.println("An object of Double is created.");
    }
  }
}

输出

An object of Integer is created.
An object of Double is created.

在上面的示例中,我们使用valueOf()方法将基本类型转换为对象。

在这里,我们使用instanceof运算符来检查生成的对象是否为IntegerDouble类型。

但是,Java编译器可以直接将基本类型转换为相应的对象。例如,

int a = 5;
// converts into object
Integer aObj = a;

double b = 5.6;
// converts into object
Double bObj = b;

这个过程称为自动装箱。要了解更多信息,请访问Java 自动装箱和拆箱

注意:我们也可以使用Wrapper类的构造函数将基本类型转换为包装类对象。但自Java 9起,构造函数的用法已被弃用。


将包装类对象转换为基本类型

要将对象转换为基本类型,我们可以使用每个包装类中存在的相应值方法(intValue()doubleValue()等)。

示例 2:包装类对象转换为基本类型

class Main {
  public static void main(String[] args) {

    // creates objects of wrapper class
    Integer aObj = Integer.valueOf(23);
    Double bObj = Double.valueOf(5.55);

    // converts into primitive types
    int a = aObj.intValue();
    double b = bObj.doubleValue();

    System.out.println("The value of a: " + a);
    System.out.println("The value of b: " + b);
  }
}

输出

The value of a: 23
The value of b: 5.55

在上面的示例中,我们使用intValue()doubleValue()方法将IntegerDouble对象转换为相应的基本类型。

但是,Java编译器可以自动将对象转换为相应的基本类型。例如,

Integer aObj = Integer.valueOf(2);
// converts into int type
int a = aObj;

Double bObj = Double.valueOf(5.55);
// converts into double type
double b = bObj;

这个过程称为拆箱


包装类的优点

  • 在Java中,有时我们需要使用对象而不是基本数据类型。例如,在处理集合时。
    // error
    ArrayList<int> list = new ArrayList<>();
    
    // runs perfectly
    ArrayList<Integer> list = new ArrayList<>();
    在这种情况下,包装类帮助我们使用对象形式的基本数据类型。
  • 我们可以在包装类对象中存储null值。例如,
    
    // generates an error
    int a = null;
    
    // runs perfectly
    Integer a = null;
    

注意:基本类型比相应的对象更有效率。因此,当效率是要求时,始终推荐使用基本类型。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战