Sobes.tech
Junior

Как да извършваме преобразуване на референтни типове към примитивни и обратно?

sobes.tech AI

Отговор от AI

Преобразуването на референтни типове (обвивки) към примитивни типове (unboxing) и обратно (autoboxing) става автоматично в Java, но също така може да се направи явно.

Автообвиване: Автоматично преобразуване на примитивен тип към съответния референтен тип.

int primitiveInt = 10;
// Автоматично се преобразува в Integer
Integer wrapperInt = primitiveInt; 

Декомпресия: Автоматично преобразуване на референтен тип към съответния примитивен тип.

Integer wrapperInteger = 20;
// Автоматично се преобразува в int
int primitiveInteger = wrapperInteger;

Явно преобразуване:

Преобразуване на референтен тип към примитивен: чрез използване на методи като intValue(), doubleValue(), и т.н.

Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // явно преобразуване

Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // явно преобразуване

Преобразуване на примитивен тип към референтен тип: чрез използване на конструктори на класовете-обвивки или статични методи valueOf(). Методът valueOf() е предпочитан, тъй като може да кешира стойности.

int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // използване на конструктора (старомоден)

double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // използване на `valueOf()`

Таблица за преобразуване:

Примитивен тип Референтен тип
boolean Boolean
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double