Я только что познакомился с концепцией автобокса в Java, и у меня есть пара быстрых вопросов, которые помогут мне прояснить мое понимание.Из того, что я понимаю, является то, что когда мы объявляем массив, такой как
ArrayList<Integer> myList = new ArrayList<Integer>();
, мы все равно можем помещать примитивные целые числа внутрь myList
, так как примитив будет автоматически заключен в объект Integer
.Я предполагаю, что это означает, что если бы я попытался добавить объект Integer
в этот ArrayList, не было бы никакого автобокса, так как я добавляю «правильный» тип?Другими словами, я предполагаю, что команда
myList.add(new Integer(2));
не использует автобокс.Точно так же я предполагаю, что для извлечения элементов из этого ArrayList и их сохранения в их обертках не требуется автобокс, так как я не помещаю их в их примитивы?Ака:
Integer a = myList.get(0);
не распаковывает?Из того, что я понимаю, распаковка произойдет, когда я попытаюсь смешать примитивы с рисунком:
int b = 4;
Integer c = a + b;
В такой ситуации я думаю, что автоматическая распаковка воли будет происходить в примитив int, добавьте с помощью int bа затем сам бокс в целочисленный объект?Мое понимание на правильном пути?