Sobes.tech
Junior

¿Cómo realizar la conversión de tipos de referencia a tipos primitivos y viceversa?

sobes.tech AI

Respuesta de la IA

La conversión de tipos de referencia (envoltorios) a tipos primitivos (desempaquetado) y viceversa (autoboxing) ocurre automáticamente en Java, pero también se puede hacer explícitamente.

Autoboxing: Conversión automática de un tipo primitivo al tipo de referencia correspondiente.

int primitiveInt = 10;
// Se convierte automáticamente en Integer
Integer wrapperInt = primitiveInt; 

Unboxing: Conversión automática de un tipo de referencia al tipo primitivo correspondiente.

Integer wrapperInteger = 20;
// Se convierte automáticamente en int
int primitiveInteger = wrapperInteger;

Conversión explícita:

Conversión de un tipo de referencia a un primitivo: usando métodos como intValue(), doubleValue(), etc.

Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // conversión explícita

Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // conversión explícita

Conversión de un tipo primitivo a un tipo de referencia: usando constructores de clases envolventes o métodos estáticos valueOf(). El método estático valueOf() es preferible, ya que puede cachear valores.

int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // uso del constructor (obsoleto)

double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // uso de valueOf()

Tabla de conversiones:

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