Sobes.tech
Junior

Cum se realizează conversia tipurilor de referință în tipuri primitive și vice versa?

sobes.tech AI

Răspuns de la AI

Conversia tipurilor de referință (ambalaje) în tipuri primitive (dezambalare) și vice versa (autoboxing) are loc automat în Java, dar poate fi făcută și explicit.

Autoboxing: Conversie automată a unui tip primitiv în tipul de referință corespunzător.

int primitiveInt = 10;
// Se convertește automat în Integer
Integer wrapperInt = primitiveInt; 

Dezambalare: Conversie automată a unui tip de referință în tipul primitiv corespunzător.

Integer wrapperInteger = 20;
// Se convertește automat în int
int primitiveInteger = wrapperInteger;

Conversie explicită:

Conversie a unui tip de referință în tipul primitiv: folosind metode precum intValue(), doubleValue(), etc.

Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // conversie explicită

Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // conversie explicită

Conversie a unui tip primitiv în tip de referință: folosind constructori ai claselor de ambalare sau metode statice valueOf(). Metoda valueOf() este preferată deoarece poate face cache pentru valori.

int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // utilizarea constructorului (învechit)

double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // utilizarea `valueOf()`

Tabel de conversie:

Tip primitiv Tip de referință
boolean Boolean
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double