В Kotlin используются следующие подходы для работы с nullable-типами и проверки на null:
Каким образом следует проверять значения на null в коде?
В Kotlin используются следующие подходы для работы с nullable-типами и проверки на null:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Kotlin используются следующие подходы для работы с nullable-типами и проверки на null:
- Оператор безопасного вызова (
?.): Позволяет вызывать методы или обращаться к свойствам объекта только в том случае, если объект не являетсяnull. Если объектnull, весь вызов возвращаетnull. - Оператор Элвис (
?:): Позволяет предоставить значение по умолчанию, если выражение слева от оператора являетсяnull. - Оператор небезопасного вызова (
!!): Преобразует nullable-тип в non-nullable. Если значениеnull, будет сгенерировано исключениеNullPointerException. Использование крайне не рекомендуется, так как может привести к падению приложения. - Блок
ifс проверкой наnull: Традиционный способ проверки, часто используется в сочетании с смарт-кастами Kotlin.
// Оператор безопасного вызова ?.
val length = text?.length
// Смарт-каст после проверки на null
if (text != null) {
val length = text.length // text автоматически приведен к String (non-nullable)
}
// Оператор Элвис ?:
val nonNullText = text ?: "Default Text"
// Оператор небезопасного вызова !! (избегать по возможности)
val forceLength = text!!.length // Может выбросить NullPointerException
В Java проверка на null выполняется исключительно с помощью условных операторов if:
// Java
if (text != null) {
int length = text.length();
} else {
// Обработка case, когда text null
}