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 |