РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
139 of 1163 menu

Автораспаковка

Автораспаковка (unboxing) в Java - это автоматическое преобразование объекта класса-обёртки (например, Integer, Double, Boolean) в соответствующий примитивный тип (например, int, double, boolean). Компилятор сам вызывает метод intValue, doubleValue, booleanValue и тому подобные, когда это необходимо. Автораспаковка выполняется автоматически в выражениях, при присваивании примитивной переменной, при передаче аргумента в метод, ожидающий примитив, а также при арифметических операциях. Обратный процесс называется автоупаковкой.

Синтаксис

Integer obj = 123; int num = obj;

Пример

Давайте распакуем объект Integer в примитив int при присваивании:

public class Main { public static void main(String[] args) { Integer obj = 123; int num = obj; System.out.println(num); } }

Результат выполнения кода:

123

Пример

Давайте выполним арифметическую операцию с объектом Integer. Компилятор автоматически распакует его в примитив:

public class Main { public static void main(String[] args) { Integer obj = 123; int res = obj + 5; System.out.println(res); } }

Результат выполнения кода:

128

Пример

Давайте передадим объект Double в метод, который принимает примитив double:

public class Main { public static void printDouble(double value) { System.out.println(value); } public static void main(String[] args) { Double obj = 12.34; printDouble(obj); } }

Результат выполнения кода:

12.34

Пример

Давайте распакуем объект Boolean в примитив boolean и используем его в условии:

public class Main { public static void main(String[] args) { Boolean obj = true; boolean flag = obj; if (flag) { System.out.println("abcde"); } } }

Результат выполнения кода:

"abcde"

Пример

Давайте посмотрим, что произойдёт при попытке распаковать объект Integer со значением null:

public class Main { public static void main(String[] args) { Integer obj = null; int num = obj; System.out.println(num); } }

Результат выполнения кода:

Exception in thread "main" java.lang.NullPointerException

Смотрите также

  • автоупаковка boxing,
    которая выполняет обратное преобразование
  • приведение типов cast,
    которое преобразует примитивы между собой
  • класс Number,
    который является родителем классов-обёрток
  • метод intValue,
    который вручную распаковывает объект в int
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить