Junior
Jak provádět převod referenčních typů na primitivní a naopak?
sobes.tech AI
Odpověď od AI
Konverze referenčních typů (obalů) na primitivní typy (unboxing) a naopak (autoboxing) probíhá v Javě automaticky, ale lze ji také provést explicitně.
Autoboxing: Automatická konverze primitivního typu na odpovídající referenční typ.
int primitiveInt = 10;
// Automaticky se převede na Integer
Integer wrapperInt = primitiveInt;
Unboxing: Automatická konverze referenčního typu na odpovídající primitivní typ.
Integer wrapperInteger = 20;
// Automaticky se převede na int
int primitiveInteger = wrapperInteger;
Explicitní konverze:
Konverze referenčního typu na primitivní: použití metod jako intValue(), doubleValue(), atd.
Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // explicitní konverze
Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // explicitní konverze
Konverze primitivního typu na referenční: použití konstruktorů tříd obalů nebo statických metod valueOf(). Metoda valueOf() je preferována, protože může cacheovat hodnoty.
int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // použití konstruktoru (zastaralé)
double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // použití `valueOf()`
Tabulka konverzí:
| Primitivní typ | Referenční typ |
|---|---|
| boolean | Boolean |
| byte | Byte |
| short | Short |
| char | Character |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |