Sobes.tech
Junior

Kotlin'de nullable bir nesne alanına erişirse ne olur?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir nesnenin nullable alanına null kontrolü olmadan erişildiğinde, NullPointerException (NPE) hatası oluşur.

Güvenli erişim için aşağıdaki yaklaşımlar kullanılabilir:

  1. Güvenli çağrı operatörü (?.): Nesne null ise null döner, aksi takdirde çağrı yapılır.

    // Diyelim ki user? bir User?
    val userName: String? = user?.name
    
  2. !! operatörü (null olmayan onaylama): Nesnenin null olmadığı açıkça doğrulanır. Eğer null ise, NullPointerException fırlatılır.

    // Bilinçli kullan, NPE'ye yol açabilir
    val userName: String = user!!.name
    
  3. Elvis operatörü (?:): Sol taraftaki nesne null ise varsayılan bir değer sağlar.

    val userName: String = user?.name ?: "Bilinmeyen Kullanıcı"
    
  4. if veya when blokları: Açık null kontrolü.

    if (user != null) {
        val userName = user.name
    } else {
        // user `null` ise işlemler
    }
    
  5. let, run, apply, with fonksiyonları ile güvenli çağrı:

    user?.let {
        // Bu blok içindeki `it` null olmayan `User`
        val userName = it.name
    }
    

Yaklaşım seçimi, programın mantığına ve nesne null olduğunda istenen davranışa bağlıdır. Genellikle, ?. veya ?: operatörleri kullanmak, NPE'yi önlemek için önerilir. !! operatörü ise dikkatli kullanılmalıdır.