Clase Java Wrapper (con ejemplos)

En este tutorial, aprenderemos sobre la clase Java Wrapper con la ayuda de ejemplos.

Las clases contenedoras en Java se utilizan para convertir los tipos primitivos ( int, char, float, etc.) en los objetos correspondientes.

Cada uno de los 8 tipos primitivos tiene clases contenedoras correspondientes.

Tipo primitivo Clase de envoltura
byte Byte
boolean Boolean
char Character
double Double
float Float
int Integer
long Long
short Short

Convertir tipo primitivo en objetos de envoltura

También podemos usar el valueOf()método para convertir tipos primitivos en objetos correspondientes.

Ejemplo 1: tipos primitivos para envolver objetos

 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."); ) ) ) 

Salida

Se crea un objeto de Integer. Se crea un objeto de Double.

En el ejemplo anterior, hemos utilizado el valueOf()método para convertir los tipos primitivos en objetos.

En este caso, hemos utilizado el instanceofoperador para comprobar si los objetos son generados de Integero Doubletipo o no.

Sin embargo, el compilador de Java puede convertir directamente los tipos primitivos en los objetos correspondientes. Por ejemplo,

 int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b; 

Este proceso se conoce como auto-boxing . Para obtener más información, visite Autoboxing y unboxing de Java.

Nota : También podemos convertir tipos primitivos en objetos envoltorios usando Wrapperconstructores de clases. Pero el uso de constructores se descarta después de Java 9.

Envolver objetos en tipos primitivos

Para convertir objetos en los tipos primitivos, podemos utilizar los métodos de valor correspondientes ( intValue(), doubleValue(), etc.) presente en cada clase de contenedor.

Ejemplo 2: Encapsular objetos en tipos primitivos

 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); ) ) 

Salida

 El valor de a: 23 El valor de b: 5,55 

En el ejemplo anterior, hemos utilizado el método intValue()y doubleValue()para convertir los objetos Integery Doubleen los tipos primitivos correspondientes.

Sin embargo, el compilador de Java puede convertir automáticamente los objetos en los tipos primitivos correspondientes. Por ejemplo,

 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; 

Este proceso se conoce como unboxing . Para obtener más información, visite Autoboxing y unboxing de Java.

Ventajas de las clases de envoltura

  • En Java, a veces es posible que necesitemos usar objetos en lugar de tipos de datos primitivos. Por ejemplo, al trabajar con colecciones.
     // error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
    En tales casos, las clases contenedoras nos ayudan a usar tipos de datos primitivos como objetos.
  • Podemos almacenar el valor nulo en objetos envoltorios. Por ejemplo,
      // generates an error int a = null; // runs perfectly Integer a = null; 

Nota : los tipos primitivos son más eficientes que los objetos correspondientes. Por lo tanto, cuando la eficiencia es el requisito, siempre se recomiendan tipos primitivos.

Articulos interesantes...