JavaRush /Курсы /Java Multithreading /Задачи на автобоксинг Boolean

Задачи на автобоксинг Boolean

Java Multithreading
9 уровень , 7 лекция
Открыта
Задачи на автобоксинг Boolean - 1

— Привет, Амиго!

16
Задача
Java Multithreading, 9 уровень, 7 лекция
Недоступна
Странные ошибки О_о
Исправь 2 ошибки: 1) возникновение исключения 2) подвисание Сделай минимальные изменения.
9
Задача
Java Multithreading, 9 уровень, 7 лекция
Недоступна
Особенности автобоксинга - 2
Исправь ошибку реализации, приводящую к NullPointerException, в методе getValue(). Читай доп. статью про особенности автобоксинга.
Комментарии (34)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vlad Уровень 33
18 августа 2024
В общем...как обычно, в начале и процессе решения задач чувствуешь себя абсолютным недоумком и идиотом а когда приходишь к решению...чувствуешь как к тебе возвращается сила)))
wokku Уровень 51
24 августа 2023
Отличные задачи🤙
Topsy Барбарисов Уровень 40
24 июля 2023
Для ПОНИМАНИЯ второй задачи
Vlad Уровень 33
18 августа 2024
Спасибо, очень помогло
Ринат Уровень 36
2 ноября 2021
Ars Уровень 41
1 ноября 2021
Инфа по первой задаче: Среднее количество попыток для этой задачи 1.78. Всего эту задачу решили 6015 учеников.
PaiMei in J# Уровень 35
24 сентября 2021
Пока искал инфо в инете, наткнулся на интересную статейку про null, короч это еще та заноза в *опе java) https://tproger.ru/articles/9-things-about-null-in-java/ Мало ли кому будет интересно)
Gans Electro Уровень 4
31 июля 2023
22 сентября 2021
Странный мем и очень страшный .
Дмитрий Уровень 39
10 февраля 2021
Понравилась задача про "Особенности автобоксинга - 2" побольше бы таких.
Pig Man Уровень 41
1 января 2021
Вторая задача

return first ? 100 : second ? 200 : null;
Как я понимаю, логика тут у компилятора такая: Тернарник должен иметь все значения внутри себя одинакового типа. Он смотрит на правую часть: 1) 200 : null - тут int и null, к чему их привести? К int null привести нельзя, зато оба можно к Integer Отлично, с правой частью все решили, теперь левую: 2) 100 : Integer - (сразу написал Integer из пункта 1, чтобы было нагляднее) У нас int и Integer, по правилам Java в такой ситуации их нужно привести к примитиву int Теперь у нас все значения в тернарнике имеют тип int, который будет преобразован к Integer, чтобы его можно было вернуть. Приведение к примитиву int происходит при вызове метода intValue() у объекта. Все бы ничего, так как в ситуации 100 : Integer. У Integer есть такой метод, но если вспомнить, что в части Integer у нас лежит null, то становится ясна проблема: нельзя написать null.intValue(). А компилятор именно это и делает Ну и подсказка для решения: Нам нужно избавить компилятор от необходимости приводить что-то к int
Майкл Мэдсен Уровень 51
3 сентября 2022
перечитал раз 20, но все равно понял не до конца
Oleksandr Kuzmin Уровень 1
19 сентября 2022
Ну грубо говоря, у нас есть условия в тернарном, идем с конца 200 и null, здесь приведется к Integer, идём обратно здесь: 100 и Integer, в предыдущих лекциях объясняли когда у нас int и integer то перед сравнением приведется к примитиву int. Получается у нас тернарный оператор вернет тип данных int, значение null, что и вызывает NullPointerException.
Алексей Уровень 41
13 ноября 2020
Та самая допстатья, если еще не читал.