@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
}
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Потому что синтаксическая ошибка.
Нужно так:
var z = w?.hunger!!

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

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

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