Sobes.tech
Junior

Как трябва да проверявате стойностите на null в кода?

sobes.tech AI

Отговор от AI

В Kotlin се използват следните подходи за работа с nullable типове и проверка за null:

  1. Оператор за безопасно извикване (?.): Позволява да се извикат методи или да се достъпят свойства на обект само ако обектът не е null. Ако обектът е null, цялото извикване връща null.

  2. Оператор Елвис (?:): Позволява да се предостави стойност по подразбиране, ако изразът отляво на оператора е null.

  3. Оператор за небезопасно извикване (!!): Преобразува nullable тип в non-nullable. Ако стойността е null, ще бъде генерирано изключение NullPointerException. Използването е силно неподходящо, тъй като може да доведе до срив на приложението.

  4. Блок if с проверка за null: Традиционен начин за проверка, често използван в съчетание с умни кастове в Kotlin.

// Оператор за безопасно извикване ?.
val length = text?.length

// Умно кастване след проверка за null
if (text != null) {
    val length = text.length // text автоматично се преобразува в String (non-nullable)
}

// Оператор Елвис ?:
val nonNullText = text ?: "Стандартен текст"

// Оператор за небезопасно извикване !! (избягвайте ако е възможно)
val forceLength = text!!.length // Може да хвърли NullPointerException

В Java проверката за null се извършва изключително с условни оператори if:

// Java
if (text != null) {
    int length = text.length();
} else {
    // Обработка на случая, когато text е null
}