Sobes.tech
Junior

¿Qué son las clases envolventes (Wrapper classes) en Java?

sobes.tech AI

Respuesta de la IA

En Java, las clases envolventes (Wrapper classes) proporcionan una representación de objetos de los tipos de datos primitivos. Para cada tipo primitivo existe una clase envolvente correspondiente:

  • boolean $\implies$ Boolean
  • char $\implies$ Character
  • byte $\implies$ Byte
  • short $\implies$ Short
  • int $\implies$ Integer
  • long $\implies$ Long
  • float $\implies$ Float
  • double $\implies$ Double

El propósito principal de las clases envolventes:

  1. Uso de tipos primitivos en colecciones (por ejemplo, ArrayList, HashMap), que solo trabajan con objetos.
  2. Proporcionar métodos útiles para trabajar con tipos primitivos, como parsear cadenas (Integer.parseInt()) o comparar.
  3. Soportar la noción de null, que no existe en los tipos primitivos.
  4. Autoboxing y unboxing: conversión automática entre primitivos y sus envolventes.

Ejemplo de autoboxing y unboxing:

// Autoboxing: int -> Integer
Integer wrapperInt = 10;

// Unboxing: Integer -> int
int primitiveInt = wrapperInt;

Ejemplo de uso en colecciones:

import java.util.ArrayList;

// Colección de objetos Integer
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(25); // Autoboxing
int firstNum = numbers.get(0); // Unboxing