Sobes.tech
Junior

Ի՞նչ կլինի, եթե դիմեք օբյեկտի դաշտին, որը կարող է լինել null:

sobes.tech AI

Պատասխան AI-ից

NullPointerException (NPE). Երբ փորձում եք կանչել մեթոդ կամ մուտք գործել օբյեկտի դաշտ, որի հղումը null է:

Օրինակ՝

data class User(val name: String)

fun printUserName(user: User?) {
    // Եթե user == null, տեղի կունենա NullPointerException
    println(user.name)
}

NPE-ից խուսափելու համար կարող եք օգտագործել՝

  • null ստուգումներ՝
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("Օգտատերը null է")
        }
    }
    
  • Անվտանգ կանչի օպերատոր (?.):
    fun printUserName(user: User?) {
        println(user?.name) // Ցուցադրում է null, եթե user == null, հակառակ դեպքում անունը
    }
    
  • Էլվիս օպերատոր (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Նախնական անուն" // Եթե user?.name null է, կկցվի "Նախնական անուն"
        println(userName)
    }
    
  • Kotlin-ի ոչ-null տիպեր՝
    // Այս մեթոդը ընդունում է միայն ոչ-null User օբյեկտ
    fun printUserName(user: User) {
        println(user.name) // Անհրաժեշտ է, որ ոչ null լինի
    }