У цьому посібнику ми дізнаємося про автобоксинг та розпаковування 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. Отже, список масивів може містити лише об’єкти 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.