Выбор ответа Junior Основы: типы, обёртки, static спрашивают часто обновлено

Распаковка null

Вопрос

Что произойдёт при выполнении кода, если ключа "x" нет в карте?

Map<String, Integer> map = new HashMap<>();
int count = map.get("x");

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: NullPointerException при распаковке null в int. map.get("x") возвращает null, а присваивание в int вызывает intValue() у null: NullPointerException.

Варианты ответа

  1. Переменная count получит значение по умолчанию 0
  2. Ошибка компиляции: нельзя присвоить Integer в int
  3. NullPointerException при распаковке null в intправильный ответ
  4. ClassCastException при приведении null к Integer

Разбор

map.get("x") возвращает null, а присваивание в int вызывает intValue() у null: NullPointerException. Значение по умолчанию 0 бывает только у полей, распаковка его не подставляет. Компиляция проходит, автораспаковка разрешена. ClassCastException тут неоткуда взяться: тип верный. Защита: map.getOrDefault("x", 0).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.