Ответ
Kotlin обеспечивает безопасность при работе с null через систему типов. Переменные по умолчанию не могут содержать null (non-nullable типы). Для разрешения null нужно явно указать nullable тип с ?.
Пример:
var nonNullable: String = "Hello" // Ошибка компиляции при присвоении null
var nullable: String? = null // Корректно
Для безопасного доступа к nullable-объектам Kotlin предоставляет:
- Safe-call оператор
?.(возвращает null при вызове на null)
val length = nullable?.length // вернет Int? (null если nullable == null)
- Elvis-оператор
?:(предоставляет значение по умолчанию)
val length = nullable?.length ?: 0 // вернет 0 если nullable == null
- Оператор утверждения
!!(приводит к NPE если значение null)
val length = nullable!!.length // выбросит NullPointerException если null