Sobes.tech
Junior

Ako vykonávať konverziu referenčných typov na primitívne a naopak?

sobes.tech AI

Odpoveď od AI

Konverzia referenčných typov (obalov) na primárne typy (unboxing) a naopak (autoboxing) prebieha v Jave automaticky, ale je možné ju aj explicitne vykonať.

Autoboxing: Automatická konverzia primárneho typu na zodpovedajúci referenčný typ.

int primitiveInt = 10;
// Automaticky sa konvertuje na Integer
Integer wrapperInt = primitiveInt; 

Unboxing: Automatická konverzia referenčného typu na zodpovedajúci primárny typ.

Integer wrapperInteger = 20;
// Automaticky sa konvertuje na int
int primitiveInteger = wrapperInteger;

Explicitná konverzia:

Konverzia referenčného typu na primárny typ: pomocou metód ako intValue(), doubleValue(), atď.

Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // explicitná konverzia

Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // explicitná konverzia

Konverzia primárneho typu na referenčný typ: pomocou konštruktorov tried obalov alebo statických metód valueOf(). Metóda valueOf() je preferovaná, pretože môže cacheovať hodnoty.

int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // použitie konštruktora (zastaralé)

double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // použitie `valueOf()`

Tabuľka konverzií:

Primitívny typ Referenčný typ
boolean Boolean
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double