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:
-
Güvenli çağrı operatörü (
?.): Nesnenullisenulldöner, aksi takdirde çağrı yapılır.// Diyelim ki user? bir User? val userName: String? = user?.name -
!!operatörü (null olmayan onaylama): Nesneninnullolmadığı açıkça doğrulanır. Eğernullise,NullPointerExceptionfırlatılır.// Bilinçli kullan, NPE'ye yol açabilir val userName: String = user!!.name -
Elvis operatörü (
?:): Sol taraftaki nesnenullise varsayılan bir değer sağlar.val userName: String = user?.name ?: "Bilinmeyen Kullanıcı" -
ifveyawhenblokları: Açıknullkontrolü.if (user != null) { val userName = user.name } else { // user `null` ise işlemler } -
let,run,apply,withfonksiyonları 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.