Entendiendo las clases Wrapper en Java: tipos, conversiones y ventajas
Clases Wrapper en Java
En este tutorial aprenderemos sobre las clases Wrapper de Java con la ayuda de ejemplos.
Las clases wrapper de Java convierten los tipos primitivos (int, char, float, etc.) en sus representaciones de objeto correspondientes.
Cada uno de los ocho tipos primitivos tiene una clase wrapper dedicada.
| Tipo primitivo | Clase Wrapper |
|---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Convertir tipo primitivo a objetos Wrapper
Use el método valueOf() para transformar explícitamente un primitivo en su objeto wrapper.
Ejemplo 1: Tipos primitivos a objetos Wrapper
class Main {
public static void main(String[] args) {
int a = 5;
double b = 5.65;
Integer aObj = Integer.valueOf(a);
Double bObj = Double.valueOf(b);
if(aObj instanceof Integer) {
System.out.println("Se ha creado un objeto de Integer.");
}
if(bObj instanceof Double) {
System.out.println("Se ha creado un objeto de Double.");
}
}
}
Salida
Se ha creado un objeto de Integer. Se ha creado un objeto de Double.
El código anterior demuestra la conversión explícita mediante valueOf(). Java también soporta autoboxing, donde los primitivos se envuelven implícitamente:
int a = 5;
Integer aObj = a;
double b = 5.6;
Double bObj = b;
Para más información sobre autoboxing y unboxing, consulte nuestra guía dedicada.
Nota: Antes de Java 9, los objetos wrapper también podían crearse mediante constructores (ej. new Integer(a)), pero este enfoque está obsoleto.
Convertir objetos Wrapper a tipos primitivos
Para recuperar el primitivo subyacente, llame al método …Value() correspondiente en el objeto wrapper.
Ejemplo 2: Objetos Wrapper a tipos primitivos
class Main {
public static void main(String[] args) {
Integer aObj = Integer.valueOf(23);
Double bObj = Double.valueOf(5.55);
int a = aObj.intValue();
double b = bObj.doubleValue();
System.out.println("El valor de a: " + a);
System.out.println("El valor de b: " + b);
}
}
Salida
El valor de a: 23 El valor de b: 5.55
Java también realiza unboxing automáticamente:
Integer aObj = Integer.valueOf(2);
int a = aObj;
Double bObj = Double.valueOf(5.55);
double b = bObj;
Consulte el artículo sobre autoboxing y unboxing para más detalles.
Ventajas de las clases Wrapper
- Cuando las colecciones requieren objetos, las clases wrapper cubren la brecha entre primitivos y objetos.
// error ArrayList<int> lista = new ArrayList<>(); // funciona perfectamente ArrayList<Integer> lista = new ArrayList<>(); - Los objetos wrapper pueden contener
null, permitiendo referencias nulas.// genera error int a = null; // funciona perfectamente Integer a = null;
Nota: Los tipos primitivos son generalmente más eficientes que sus contrapartes objeto; use primitivos cuando el rendimiento sea crítico.
Java
- Palabra clave final en Java: Variables, métodos y clases
- Operador instanceof en Java: Guía completa
- Dominando la herencia en Java: Conceptos, tipos y ejemplos prácticos
- Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
- Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
- Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
- Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
- Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación
- Entendiendo las clases Wrapper en Java: tipos, conversiones y ventajas