Sobes.tech
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