Sobes.tech
Junior

Nima bo'ladi, agar null bo'lishi mumkin bo'lgan ob'ekt maydoniga murojaat qilsangiz?

sobes.tech AI

AIdan javob

NullPointerException (NPE). Bu hodisa, ob'ektning metodini chaqirish yoki maydoniga murojaat qilishga harakat qilganda yuzaga keladi, va bu ob'ektning havolasi null bo'lsa.

Misol:

data class User(val name: String)

fun printUserName(user: User?) {
    // Agar user == null bo'lsa, NullPointerException yuzaga keladi
    println(user.name)
}

NPEdan qochish uchun quyidagilarni ishlatishingiz mumkin:

  • null tekshiruvlar:
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("Foydalanuvchi null")
        }
    }
    
  • Xavfsiz chaqirish operatori (?.):
    fun printUserName(user: User?) {
        println(user?.name) // Agar user null bo'lsa, null chiqaradi, aks holda ism
    }
    
  • Elvis operator (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Standart nom" // Agar user?.name null bo'lsa, "Standart nom" ni tayinlaydi
        println(userName)
    }
    
  • Null bo'lmagan turlar (Kotlin):
    // Bu metod faqat null bo'lmagan User ob'ektini qabul qiladi
    fun printUserName(user: User) {
        println(user.name) // Garantili, null emas
    }