Sobes.tech
Junior

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