Kotlinде nullable объекттин талаасына кайрылсаңыз, эмне болот?
sobes.tech AI
AIден жооп
Eger siz nullable obyektiň meýdanyna null barlasa, null barlap bolmaýan ýagdaýynda NullPointerException (NPE) ýüze çykýar.
Howpsuz giriş üçin aşakdaky çemeleşmeleri ulanyp bilersiňiz:
-
Howpsuz çagyrma operatory (
?.): Obýektnullbolsa,nullgaýtarar, başga halda çagyrma amala aşar.// Faraz edeli, user? User? val userName: String? = user?.name -
!!null däl diýýşiň operatory: Obýektiňnulldäldigini açyk tassyklaýar. Egernullbolsa,NullPointerExceptionçykaryp biler.// Bilinçli ulanyň, NPE-ä getirip biler val userName: String = user!!.name -
Elvis operatory (
?:): Eger çep tarapdaky obýektnullbolsa, öňünden bellenen bahany berýär.val userName: String = user?.name ?: "Bilinmedik ulanyjy" -
ifýa-dawhenbloklary: Açyknullbarlagy.if (user != null) { val userName = user.name } else { // `user` null bolsa, işlemek } -
let,run,apply,withfunksiyalary bilen howpsuz çagyrma:user?.let { // Bu blokda `it` null däl `User` val userName = it.name }
Ulgam saýlamagy programma logikasyna we obýektiň null bolmagy halyndaky islenýän hereketine baglydyr. Ümumiyetde, NPE-den gaçmak üçin ?. ýa-da ?: operatoryny ulanmaga maslahat berilýär. !! operatoryny bolsa, ätiýaçlyk bilen ulanyň.