Nullable типы в Kotlin – это типы, которые могут содержать как значение, так и null. Они явно обозначаются символом ? после имени типа.
Функционирование основано на системе типов Kotlin, которая предотвращает NullPointerException во время компиляции. Компилятор требует явной проверки на null перед обращением к членам объекта nullable типа.
Основные способы безопасной работы с nullable типами:
Проверка на null с использованием if:
kotlin
Оператор безопасного вызова (?.): Возвращает null, если объект null, иначе – результат вызова.
kotlin
Оператор Элвиса (?:): Позволяет предоставить значение по умолчанию в случае, если выражение слева от оператора null.
kotlin
Оператор оператор явного не-null утверждения (!!): Преобразует nullable тип в не-nullable. Следует использовать с осторожностью, так как выбросит NullPointerException, если значение окажется null.
kotlin
Функции let/run/apply/also с безопасным вызовом:
kotlin
Система nullable типов Kotlin существенно повышает безопасность и уменьшает вероятность возникновения NullPointerException по сравнению с языками, где null может быть присвоен любому типу без явного обозначения.