Таким образом, мы можем отобразить методы, вызываемые на примитивных типах, статическим методам их типов-оболочек, хорошо.
Это совсем не относится к упаковке / распаковке, это всего лишь синтаксический сахар для написания одного и того же вызова метода по-другому - и только довольно небольшое количество методов, которые предопределены в классах-оболочках.
Бокс необходим, если вы хотите обработать примитивное значение как объект, например:
- передать его методу, который принимает только объекты
- поместите его в переменную типа объекта
- возвращает его из метода, который должен возвращать объекты
Особые (но довольно важные) случаи из них:
- положить его в массив объектов
- положить в коллекцию
Распаковка необходима, если мы получили такой коробочный примитив и хотим иметь его чистую форму, например, после вызова метода, который возвращает объекты, или взятия значения из переменной.
До Java 5 (или 1.5) нам приходилось делать всю эту упаковку и распаковку вручную, методом .valueOf()
или toXXX()
. Теперь это делается автоматически при необходимости (автобокс).