Задать вопрос
@Proko

Почему не выбрасывает NullPointerException?

Изучаю Null безопасность в Kotlin, но не понимаю, почему код ниже вместо того, чтобы выбросить в момент выполнения строки что-то вроде KotlinNullPointerException, выбрасывает Kotlin: Unresolved reference: hunger, отказываясь компилироваться?

fun main() {
    var w: Wolf? = Wolf()
    w = null
    var z = w!!.hunger
}
class Wolf {
    var hunger = 10
}
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Android-разработчик
    12 месяцев
    Далее
  • Нетология
    Android-разработчик с нуля
    14 месяцев
    Далее
  • OTUS
    Kotlin Backend Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Потому что синтаксическая ошибка.
Нужно так:
var z = w?.hunger!!

Чтобы случился NullPointerException, нужно, чтобы переменная была null:
var w: Wolf? = null
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Jacen11
@Jacen11
NullPointerException рантаймовая ошибка, а в этом случае не нужно даже программу запускать, сразу понятно что w это ноль и будет ошибка, это выясняется на этапе компиляции еще
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы