В этом руководстве мы узнаем об автоматической упаковке и распаковке Java с помощью примеров.
Java Autoboxing - примитивный тип для объекта-оболочки
При автобоксинге компилятор Java автоматически преобразует примитивные типы в соответствующие им объекты класса оболочки. Например,
int a = 56; // autoboxing Integer aObj = a;
Автобоксинг имеет большое преимущество при работе с коллекциями Java.
Пример 1: Java Autoboxing
import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); ) )
Вывод
ArrayList: (5, 6)
В приведенном выше примере мы создали список массивов целочисленного типа. Следовательно, список массивов может содержать только объекты Integer
типа.
Обратите внимание на линию,
list.add(5);
Здесь мы передаем значение примитивного типа. Однако из-за автобокса примитивное значение автоматически преобразуется в Integer
объект и сохраняется в списке массивов.
Распаковка Java - объекты оболочки для примитивных типов
При распаковке компилятор Java автоматически преобразует объекты класса оболочки в соответствующие им примитивные типы. Например,
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Подобно автобоксу , распаковку также можно использовать с коллекциями Java.
Пример 2: Распаковка Java
import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); // unboxing int a = list.get(0); System.out.println("Value at index 0: " + a); ) )
Вывод
ArrayList: (5, 6) Значение в индексе 0: 5
В приведенном выше примере обратите внимание на строку
int a = list.get(0);
Здесь get()
метод возвращает объект с индексом 0. Однако из-за распаковки объект автоматически преобразуется в примитивный тип int
и присваивается переменной a.