Sobes.tech
Junior

Bir null olabilecek nesne alanına başvurulursa ne olur?

sobes.tech yapay zeka

AI'dan gelen yanıt

NullPointerException (NPE). Bir nesnenin metodunu çağırmaya veya alanına erişmeye çalıştığınızda olur, referansı null ise.

Örnek:

data class User(val name: String)

fun printUserName(user: User?) {
    // Eğer user == null ise, NullPointerException oluşur
    println(user.name)
}

NPE'yi önlemek için şu yöntemleri kullanabilirsiniz:

  • null kontrolleri:
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("Kullanıcı null")
        }
    }
    
  • Güvenli çağrı operatörü (?.):
    fun printUserName(user: User?) {
        println(user?.name) // user null ise null, değilse isim yazdırır
    }
    
  • Elvis operatörü (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Varsayılan İsim" // user?.name null ise "Varsayılan İsim" atar
        println(userName)
    }
    
  • Null olmayan tipler (Kotlin'de):
    // Bu metod sadece null olmayan User nesnesi kabul eder
    fun printUserName(user: User) {
        println(user.name) // Null değil garantili
    }