Автоупаковка
Автоупаковка (autoboxing) - это автоматическое преобразование
примитивного значения в объект соответствующего класса-обертки.
Компилятор Java выполняет эту операцию самостоятельно, когда
примитив нужно использовать там, где ожидается объект.
Например, примитив типа int упаковывается в объект класса
Integer, double - в Double, boolean - в
Boolean и так далее. Обратный процесс называется
распаковкой.
Автоупаковка применяется в двух основных случаях: при присваивании примитива переменной типа-обертки и при передаче примитива в метод, параметр которого имеет тип-обертку.
Синтаксис
Integer obj = 123;
Double obj = 1.5;
Boolean obj = true;
Здесь в первый параметр (левую часть) мы передаем переменную класса-обертки, а во второй (правую часть) - примитивное значение, которое автоматически упаковывается в объект.
Пример
Давайте упакуем примитивное число в объект класса Integer
и выведем его на экран:
public class Main
{
public static void main(String[] args)
{
Integer num = 123;
System.out.println(num);
}
}
Результат выполнения кода:
123
Пример
Давайте передадим примитив в метод, который принимает объект класса-обертки:
public class Main
{
public static void print(Integer num)
{
System.out.println(num);
}
public static void main(String[] args)
{
print(123);
}
}
Результат выполнения кода:
123
Пример
Давайте добавим примитивы в коллекцию, которая хранит только объекты. Компилятор автоматически упакует каждое значение:
import java.util.List;
import java.util.ArrayList;
public class Main
{
public static void main(String[] args)
{
List<Integer> res = new ArrayList<>();
res.add(1);
res.add(2);
res.add(3);
System.out.println(res);
}
}
Результат выполнения кода:
[1, 2, 3]