Kotlin-də nullable obyekt sahəsinə müraciət etsəniz nə baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
Əgər nullable obyektin sahəsinə null yoxlaması olmadan müraciət etsəniz, NullPointerException (NPE) baş verəcək.
Təhlükəsiz müraciət üçün aşağıdakı yanaşmalardan istifadə edə bilərsiniz:
-
Təhlükəsiz çağırış operatoru (
?.): Əgər obyektnulldirsə,nullqaytarır, əks halda çağırışı həyata keçirir.// Tutaq ki, user? bir User? val userName: String? = user?.name -
!!non-null təsdiqləmə operatoru: Obyektinnullolmadığını açıq şəkildə təsdiqləyir. Əgərnullolsa,NullPointerExceptionatılır.// Məlumatlı istifadə edin, NPE-yə səbəb ola bilər val userName: String = user!!.name -
Elvis operatoru (
?:): Sol tərəfdəki obyektnulldirsə, standart dəyər verir.val userName: String = user?.name ?: "Naməlum İstifadəçi" -
ifvə yawhenblokları: Açıqnullyoxlaması.if (user != null) { val userName = user.name } else { // `user` null olarsa, işləmə } -
let,run,apply,withfunksiyaları ilə təhlükəsiz çağırış:user?.let { // Bu blokda `it` null olmayan `User` val userName = it.name }
Yanaşma seçimi proqramın məntiqinə və obyektin null olması halında istənilən davranışa bağlıdır. Ümumiyyətlə, ?. və ya ?: operatorlarından istifadə etmək NPE-dən qaçınmaq üçün tövsiyə olunur. !! operatoru isə ehtiyatla istifadə edilməlidir.