Ответ
Для этого используются классы-обёртки (Wrapper Classes), которые инкапсулируют примитивные значения в объекты.
| Соответствие типов: | Примитив | Класс-обёртка |
|---|---|---|
byte |
Byte |
|
short |
Short |
|
int |
Integer |
|
long |
Long |
|
float |
Float |
|
double |
Double |
|
char |
Character |
|
boolean |
Boolean |
Механизмы преобразования:
- Автоупаковка (Autoboxing): Автоматическое преобразование примитива в объект.
Integer obj = 42; // Компилятор преобразует в: Integer.valueOf(42) - Распаковка (Unboxing): Автоматическое преобразование объекта в примитив.
int primitive = obj; // Компилятор преобразует в: obj.intValue()
Практическое применение:
- Хранение примитивов в коллекциях (например,
List<Integer>). - Использование
nullкак значения (примитивы не могут бытьnull). - Вызов методов, которые работают только с объектами.
Предостережение: Частая упаковка/распаковка в циклах может создать нагрузку из-за создания множества объектов.