Junior
98
questionbank
Как осуществляется преобразование ссылочных типов в примитивные и наоборот?
Ответ от нейросети
sobes.tech AI
Преобразование между ссылочными (объектами классов-обёрток) и примитивными типами в Java называется автоупаковкой (autoboxing) и автораспаковкой (unboxing). Это автоматическое преобразование, выполняемое компилятором.
-
Автоупаковка (Autoboxing): Преобразование примитивного типа в соответствующий ссылочный объект-обёртку.
int primitiveInt = 10; Integer wrappedInt = primitiveInt; // Автоупаковка int в Integer -
Автораспаковка (Unboxing): Преобразование ссылочного объекта-обёртки в соответствующий примитивный тип.
Integer wrappedInteger = 20; int primitiveInteger = wrappedInteger; // Автораспаковка Integer в int
Это удобно при работе с коллекциями, которые хранят только объекты:
import java.util.List;
import java.util.ArrayList;
// Объявление списка целых чисел
List<Integer> numbers = new ArrayList<>();
// Добавление примитивного int, выполняется автоупаковка
numbers.add(100); // Автоупаковка 100 (int) в Integer
// Получение элемента, выполняется автораспаковка
int firstNumber = numbers.get(0); // Автораспаковка Integer в int
Соответствие между примитивными типами и классами-обёртками:
| Примитивный Тип | Класс-Обёртка |
|---|---|
boolean |
Boolean |
byte |
Byte |
short |
Short |
char |
Character |
int |
Integer |
long |
Long |
float |
Float |
double |
Double |
Важно помнить, что при автораспаковке null значения объекта-обёртки возникает NullPointerException.
Integer nullableInteger = null;
// int primitive = nullableInteger; // Вызовет NullPointerException при попытке автораспаковки null