Sobes.tech
Junior

Jak należy sprawdzać wartości null w kodzie?

sobes.tech AI

Odpowiedź od AI

W Kotlinie do pracy z typami nullable i sprawdzania null używa się następujących podejść:

  1. Operator bezpiecznego wywołania (?.): Pozwala wywołać metodę lub uzyskać dostęp do właściwości obiektu tylko wtedy, gdy obiekt nie jest null. Jeśli obiekt jest null, cały wywołanie zwraca null.

  2. Operator Elvis (?:): Pozwala podać wartość domyślną, jeśli wyrażenie po lewej stronie operatora jest null.

  3. Operator niebezpiecznego wywołania (!!): Konwertuje nullable-typ na non-nullable. Jeśli wartość jest null, zostanie wyrzucony wyjątek NullPointerException. Użycie jest wysoce odradzane, ponieważ może spowodować awarię aplikacji.

  4. Blok if z sprawdzeniem na null: Tradycyjny sposób sprawdzania, często używany w połączeniu z smart castami Kotlin.

// Operator bezpiecznego wywołania ?.
val length = text?.length

// Smart cast po sprawdzeniu na null
if (text != null) {
    val length = text.length // text automatycznie rzutowany na String (non-nullable)
}

// Operator Elvis ?:
val nonNullText = text ?: "Domyślny tekst"

// Operator niebezpiecznego wywołania !! (unikaj go, jeśli to możliwe)
val forceLength = text!!.length // Może wyrzucić NullPointerException

W Javie sprawdzanie na null odbywa się wyłącznie za pomocą instrukcji warunkowych if:

// Java
if (text != null) {
    int length = text.length();
} else {
    // Obsługa przypadku, gdy text jest null
}