Como fazer a conversão de tipos de referência para tipos primitivos e vice-versa?
sobes.tech IA
Resposta da IA
A conversão de tipos de referência (envelopes) em tipos primitivos (desempaquetar) e vice-versa (autoboxing) ocorre automaticamente em Java, mas também pode ser feita explicitamente.
Autoboxing: Conversão automática de um tipo primitivo para o tipo de referência correspondente.
int primitiveInt = 10;
// É convertido automaticamente para Integer
Integer wrapperInt = primitiveInt;
Desempaquetar: Conversão automática de um tipo de referência para o tipo primitivo correspondente.
Integer wrapperInteger = 20;
// É convertido automaticamente para int
int primitiveInteger = wrapperInteger;
Conversão explícita:
Conversão de um tipo de referência para um primitivo: usando métodos como intValue(), doubleValue(), etc.
Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // conversão explícita
Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // conversão explícita
Conversão de um tipo primitivo para um tipo de referência: usando construtores de classes envolventes ou métodos estáticos valueOf(). O método estático valueOf() é preferível, pois pode fazer cache de valores.
int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // uso do construtor (obsoleto)
double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // uso de valueOf()
Tabela de conversões:
| Tipo primitivo | Tipo de referência |
|---|---|
| boolean | Boolean |
| byte | Byte |
| short | Short |
| char | Character |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |