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 |