Назад к вопросам
Junior
112
questionbank

Как осуществлять преобразование ссылочных типов в примитивные и наоборот?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Преобразование ссылочных типов (оберток) в примитивные (unboxing) и наоборот (autoboxing) происходит автоматически в Java, но также можно сделать это явно.

Автоупаковка (Autoboxing): Автоматическое преобразование примитивного типа в соответствующий ссылочный тип.

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

Распаковка (Unboxing): Автоматическое преобразование ссылочного типа в соответствующий примитивный тип.

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