Sobes.tech
Junior

Kotlin-də nullable obyekt sahəsinə müraciət etsəniz nə baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

Əgər nullable obyektin sahəsinə null yoxlaması olmadan müraciət etsəniz, NullPointerException (NPE) baş verəcək.

Təhlükəsiz müraciət üçün aşağıdakı yanaşmalardan istifadə edə bilərsiniz:

  1. Təhlükəsiz çağırış operatoru (?.): Əgər obyekt nulldirsə, null qaytarır, əks halda çağırışı həyata keçirir.

    // Tutaq ki, user? bir User?
    val userName: String? = user?.name
    
  2. !! non-null təsdiqləmə operatoru: Obyektin null olmadığını açıq şəkildə təsdiqləyir. Əgər null olsa, NullPointerException atılır.

    // Məlumatlı istifadə edin, NPE-yə səbəb ola bilər
    val userName: String = user!!.name
    
  3. Elvis operatoru (?:): Sol tərəfdəki obyekt nulldirsə, standart dəyər verir.

    val userName: String = user?.name ?: "Naməlum İstifadəçi"
    
  4. if və ya when blokları: Açıq null yoxlaması.

    if (user != null) {
        val userName = user.name
    } else {
        // `user` null olarsa, işləmə
    }
    
  5. let, run, apply, with funksiyaları ilə təhlükəsiz çağırış:

    user?.let {
        // Bu blokda `it` null olmayan `User`
        val userName = it.name
    }
    

Yanaşma seçimi proqramın məntiqinə və obyektin null olması halında istənilən davranışa bağlıdır. Ümumiyyətlə, ?. və ya ?: operatorlarından istifadə etmək NPE-dən qaçınmaq üçün tövsiyə olunur. !! operatoru isə ehtiyatla istifadə edilməlidir.