¿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 |