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) // Эгер user null болсо, null чыгат, башкача айтканда аты
    }
    
  • Элвис оператору (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Дефолт аты" // Эгер user?.name null болсо, "Дефолт аты" берилет
        println(userName)
    }
    
  • Kotlinдеги нөлгө барабар эмес типтер:
    // Бул метод гана нөлгө барабар эмес User объектисин кабыл алат
    fun printUserName(user: User) {
        println(user.name) // Нөл эмес деп кепилдик берилген
    }