Автоупаковка и методы


В дополнение к простым случаям присвоения автоупаковка происходит автоматически всякий раз, когда примитивный тип должен быть преобразован в объект. Автораспаковка происходит всякий раз, когда объект должен быть преобразован в примитивный тип. Таким образом, автоупаковка/автораспаковка может случиться, когда аргумент передается методу либо когда значение возвращается из метода. Рассмотрим пример.

// Автоупаковка/автораспаковка происходит
//с методами параметров и возвращаемыми значениями.
class AutoBox2 {
// принять параметр Integer и вернуть
// значение int;
static int m(Integer v) {
return v ; // автораспаковка int
public static void main(String args[]) {
// Передача int методу m() и присвоение возвращаемого значения
// объекту Integer. Здесь аргумент 100 автоматически упаковывается
//в Integer. Возвращаемое значение также упаковывается в Integer.
Integer iOb = m(100);
System.out.println(iOb);
}
}

Эта программа отображает следующий результат:

100

Обратите внимание, что в этой программе m () специфицирует параметр типа Integer и возвращает результат типа int. Внутри main () методу m () передается значение 100. Поскольку т() ожидает Integer, это значение автоматически упаковывается. Затем т() возвращает int-эквивалент аргумента. Это заставляет автоматически упаковаться v. Далее это int-значение присваивается iOb в main (), что вызывает автоматическую упаковку результата типа int.