Что произойдет, если обратиться напрямую к nullable объекту в Kotlin

«Что произойдет, если обратиться напрямую к nullable объекту в Kotlin» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Обращение напрямую к nullable объекту без проверки на null вызовет ошибку компиляции. Kotlin требует явной проверки или безопасного обращения через операторы:

  1. ?. (safe call) - выполнит операцию только если объект не null
  2. ?: (elvis operator) - предоставит значение по умолчанию
  3. !! (not-null assertion) - принудительное разыменование (может вызвать NPE)

Пример:

val name: String? = null

// Безопасные варианты:
val length = name?.length // вернет null
val safeLength = name?.length ?: 0 // вернет 0
val forcedLength = name!!.length // выбросит NullPointerException