Sobes.tech
Junior

Jak dokonać konwersji typów referencyjnych na typy prymitywne i odwrotnie?

sobes.tech AI

Odpowiedź od AI

Konwersja typów odniesienia (opakowania) na typy prymitywne (odpakowywanie) i odwrotnie (autoboxing) odbywa się automatycznie w Javie, ale można ją również wykonać jawnie.

Autoboxing: Automatyczna konwersja typu prymitywnego na odpowiadający mu typ odniesienia.

int primitiveInt = 10;
// Automatycznie konwertuje się na Integer
Integer wrapperInt = primitiveInt; 

Odpakowywanie: Automatyczna konwersja typu odniesienia na odpowiadający mu typ prymitywny.

Integer wrapperInteger = 20;
// Automatycznie konwertuje się na int
int primitiveInteger = wrapperInteger;

Jawna konwersja:

Konwersja typu odniesienia na prymitywny: użycie metod takich jak intValue(), doubleValue(), itd.

Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // jawna konwersja

Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // jawna konwersja

Konwersja typu prymitywnego na odniesienie: użycie konstruktorów klas opakowujących lub metod statycznych valueOf(). Metoda valueOf() jest preferowana, ponieważ może buforować wartości.

int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // użycie konstruktora (przestarzałe)

double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // użycie `valueOf()`

Tabela konwersji:

Typ prymitywny Typ odniesienia
boolean Boolean
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double