можем ли мы изменить оболочку на примитивную? Если нет, то что происходит в этом коде
int I = Integer.valueOf(46);
System.out.println(I);
Я не получаю никакой ошибки.
можем ли мы изменить оболочку на примитивную? Если нет, то что происходит в этом коде
int I = Integer.valueOf(46);
System.out.println(I);
Я не получаю никакой ошибки.
Да, это называется распаковка:
Integer boxed = 10; // Boxing
int unboxed = boxed; // Unboxing
Преобразования бокса описаны в JLS. 5.1.7а>; преобразования распаковки описаны в JLS 5.1.8а>.
Обратите внимание, что если вы попытаетесь распаковать ссылку null
, будет выброшено NullPointerException
:
Integer boxed = null;
int unboxed = boxed; // NPE
Long
распаковка происходит задолго до назначения; это должно произойти, чтобы операторы работали. Я бы хотел, чтобы эта версия не была удалена, даже если она останется закрытой как дубликат. - person Jon Skeet   schedule 28.07.2017