Обертки (Wrapper классы) в Java — это специальные классы, представляющие собой ссылочные типы данных для примитивных типов. Они позволяют работать с примитивами как с объектами.
Основные характеристики и назначение:
- Объекты для примитивов: Каждый примитивный тип (
byte, short, int, long, float, double, boolean, char) имеет соответствующий класс-обертку (Byte, Short, Integer, Long, Float, Double, Boolean, Character).
- Наследование от
Object: Все классы-обертки являются потомками класса Object, что позволяет использовать их в коллекциях (таких как ArrayList, HashMap, HashSet) и других API, работающих с объектами.
- Поля и методы: Классы-обертки содержат полезные методы для работы с соответствующими примитивными значениями (например, парсинг строк, сравнение). Также они содержат константы (например,
Integer.MAX_VALUE, Integer.MIN_VALUE).
- Автоупаковка (Autoboxing) и автораспаковка (Unboxing): Механизмы Java, позволяющие автоматически преобразовывать примитивный тип в его обертку и обратно.
java
- Неизменяемость (Immutability): Объекты классов-оберток неизменяемы. После создания их значение нельзя изменить.
java
Применение:
- Работа с коллекциями Java.
- Использование в Stream API.
- Nullable значения (объект-обертка может быть
null, примитив — нет).
- Вспомогательные методы для преобразования типов и константы.
- В дженериках (Generics), которые не могут работать с примитивными типами напрямую.