Sobes.tech
Junior

Null ola biləcək obyekt sahəsinə müraciət etsəniz nə baş verər?

sobes.tech Süni İntellekt

AI-dan cavab

NullPointerException (NPE). Ob'ektin metodunu çağırmağa və ya sahəsinə müraciət etməyə çalışdığınız zaman baş verir və həmin referans null-a bərabərdirsə.

Misal:

data class User(val name: String)

fun printUserName(user: User?) {
    // Əgər user == null isə, NullPointerException baş verəcək
    println(user.name)
}

NPE-dən qaçmaq üçün aşağıdakı üsullardan istifadə edə bilərsiniz:

  • null yoxlamaları:
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("İstifadəçi null")
        }
    }
    
  • Təhlükəsiz çağırış operatoru (?.):
    fun printUserName(user: User?) {
        println(user?.name) // user null isə null, yoxsa adı göstərəcək
    }
    
  • Elvis operatoru (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Default Name" // Əgər user?.name null isə, "Default Name" təyin edir
        println(userName)
    }
    
  • Null olmayan tiplər (Kotlin-də):
    // Bu metod yalnız null olmayan User obyektini qəbul edir
    fun printUserName(user: User) {
        println(user.name) // Garantili, null deyil
    }