Saltar a contenido

Wrappers en Java

Para todos los tipos de datos primitivos, existen unas clases llamadas Wrapper, también conocidas como envoltorio, ya que proveen una serie de mecanismos que nos permiten envolver a un tipo de dato primitivo permitiéndonos con ello el tratarlos como si fueran objetos.

Tipos primitivos Wrappers
byte Byte
short Short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character

Todos los Wrappers a su vez dependen de Java.lang.Object ya que, como hemos dicho, los Wrappers no dejan de ser objetos y por tanto descienden de la clase Object. Podemos apreciar todo esto de una forma más sencilla a partir del siguiente esquema:

Jerarquía Wrappers

Las clases envoltorio en Java, como Integer, Double, Boolean, Character, Byte, Long y Float, proporcionan una serie de métodos para manejar los valores primitivos correspondientes. Lo ideal es consultar estos métodos en la documentación oficial, donde además podremos ver cuales son los que podemos usar en nuestra versión de Java. A continuación, vamos a ver una serie de ejemplos del uso de Wrappers:

public class Main {
    public static void main(String[] args) {
        // Creación de un objeto de la clase Integer a partir de un valor primitivo int
        int num = 10;
        Integer numWrapper = Integer.valueOf(num);
        // Conversión de un objeto de la clase Integer a un valor primitivo int
        int numPrimitivo = numWrapper.intValue();
        // Imprimir los valores
        System.out.println("num: " + num);
        System.out.println("numWrapper: " + numWrapper);
        System.out.println("numPrimitivo: " + numPrimitivo);
    }
}
public class Main {
    public static void main(String[] args) {
        // Creación de un objeto de la clase Double a partir de un valor primitivo double
        double num = 10.5;
        Double numWrapper = Double.valueOf(num);
        // Conversión de un objeto de la clase Double a un valor primitivo double
        double numPrimitivo = numWrapper.doubleValue();
        // Imprimir los valores
        System.out.println("num: " + num);
        System.out.println("numWrapper: " + numWrapper);
        System.out.println("numPrimitivo: " + numPrimitivo);
    }
}
public class Main {
    public static void main(String[] args) {
        // Creación de un objeto de la clase Boolean a partir de un valor primitivo boolean
        boolean flag = true;
        Boolean flagWrapper = Boolean.valueOf(flag);
        // Conversión de un objeto de la clase Boolean a un valor primitivo boolean
        boolean flagPrimitivo = flagWrapper.booleanValue();
        // Imprimir los valores
        System.out.println("flag: " + flag);
        System.out.println("flagWrapper: " + flagWrapper);
        System.out.println("flagPrimitivo: " + flagPrimitivo);
    }
}
public class Main {
    public static void main(String[] args) {
        // Creación de un objeto de la clase Character a partir de un valor primitivo char
        char letra = 'A';
        Character letraWrapper = Character.valueOf(letra);
        // Conversión de un objeto de la clase Character a un valor primitivo char
        char letraPrimitivo = letraWrapper.charValue();
        // Imprimir los valores
        System.out.println("letra: " + letra);
        System.out.println("letraWrapper: " + letraWrapper);
        System.out.println("letraPrimitivo: " + letraPrimitivo);
    }
}