Как Kotlin работает с null

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

Ответ

Kotlin обеспечивает безопасность при работе с null через систему типов. Переменные по умолчанию не могут содержать null (non-nullable типы). Для разрешения null нужно явно указать nullable тип с ?.

Пример:

var nonNullable: String = "Hello" // Ошибка компиляции при присвоении null
var nullable: String? = null      // Корректно

Для безопасного доступа к nullable-объектам Kotlin предоставляет:

  1. Safe-call оператор ?. (возвращает null при вызове на null)
val length = nullable?.length // вернет Int? (null если nullable == null)
  1. Elvis-оператор ?: (предоставляет значение по умолчанию)
val length = nullable?.length ?: 0 // вернет 0 если nullable == null
  1. Оператор утверждения !! (приводит к NPE если значение null)
val length = nullable!!.length // выбросит NullPointerException если null