English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Manejo de excepciones en Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 包装类 (Wrapper)

在本教程中,我们将借助示例学习Java 包装类(Wrapper)。

Java中的包装类用于将原始类型(int,char,float等)转换为相应的对象。

8每个基本类型中的每一个都有对应的包装器类。

原始类型包装类
byteByte
booleanBoolean
charCharacter
doubleDouble
floatFloat
intInteger
longLong
shortShort

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

还可以使用valueOf()方法将原始类型转换为相应的对象。

Ejemplo1:Tipo primitivo de objeto de envoltura

class Main {
  public static void main(String[] args) {
    //Crear tipo primitivo
    int a = 5;
    double b = 5.65;
    //Convertir a objeto de envoltura
    Integer aObj = Integer.valueOf(a);
    Double bObj = Double.valueOf(b);
    if(aObj instanceof Integer) {
      System.out.println("Crear un objeto Integer.");
    }
    if(bObj instanceof Double) {
      System.out.println("Crear un objeto Double.");
    }
  }
}

Resultado de salida

Crear un objeto Integer.
Crear un objeto Double.

En el ejemplo anterior, usamos el método valueOf() para convertir tipos primitivos a objetos.

Aquí, usamos el operador instanceof para verificar si el objeto generado pertenece al tipo Integer o Double.

Pero, el compilador de Java puede convertir directamente los tipos primitivos a los objetos correspondientes. Por ejemplo,

int a = 5;
//Convertir a objeto
Integer aObj = a;
double b = 5.6;
//Convertir a objeto
Double bObj = b;

Este proceso se llamaEmpaquetado automático.Para obtener más información, visiteJava 自动装箱和拆箱.

Atención:también podemos usar el constructor de la clase de envoltura (Wrapper) para convertir tipos primitivos a objetos de envoltura.Pero en Java 9Después de eso, ya no se utiliza el constructor.

Objeto de envoltura a tipo primitivo

Para convertir un objeto a un tipo primitivo, podemos usar el método de valor correspondiente en cada clase de envoltura (intValue(), doubleValue(), etc.).

Ejemplo2:Convertir objetos de envoltura a tipos primitivos

class Main {
  public static void main(String[] args) {
    //Crear objetos de envoltura
    Integer aObj = Integer.valueOf(23);
    Double bObj = Double.valueOf(5.55);
    //Convertir a tipo primitivo
    int a = aObj.intValue();
    double b = bObj.doubleValue();
    System.out.println("El valor de a: ") + a);
    System.out.println("El valor de b: ") + b);
  }
}

Resultado de salida

El valor de a: 23
El valor de b: 5.55

En el ejemplo anterior, usamos los métodos intValue() y doubleValue() para convertir los objetos Integer y Double a los tipos básicos primitivos correspondientes.

Pero, el compilador de Java puede convertir automáticamente los objetos al tipo primitivo correspondiente. Por ejemplo,

Integer aObj = Integer.valueOf(2);
//Convertir a tipo int
int a = aObj;
Double bObj = Double.valueOf(5.55);
//Convertir a tipo double
double b = bObj;

Este proceso se llamaDesempaquetado.Para obtener más información, visiteJava 自动装箱和拆箱.

Ventajas de los paquetes

  • A veces, en Java, podríamos necesitar usar objetos en lugar de tipos de datos primitivos. Por ejemplo, al usar conjuntos.

    // Error
    ArrayList<int> list = new ArrayList<>();
    //Funcionamiento normal
    ArrayList<Integer> list = new ArrayList<>();

    En este caso, las clases de paquete pueden ayudarnos a usar tipos de datos primitivos como objetos.

  • Podemos almacenar valores nulos en objetos de paquete. Por ejemplo,

    //Se generará un error
    int a = null;
    // Funcionamiento normal
    Integer a = null;

AtenciónLos tipos primitivos son más eficientes que los tipos de objeto correspondientes. Por lo tanto, se recomienda siempre usar tipos primitivos cuando se necesita eficiencia.