Čo sa stane, ak pristúpite k nullable poľu objektu v Kotlin?
sobes.tech AI
Odpoveď od AI
Ak pristúpite k nullable poľu objektu bez kontroly na null, dôjde k výnimke NullPointerException (NPE).
Pre bezpečný prístup môžete použiť nasledujúce prístupy:
-
Operátor bezpečného volania (
?.): Vrátinull, ak je objektnull, inak vykoná volanie.// Predpokladajme, že user? je User? val userName: String? = user?.name -
Operátor potvrdenia nenull (
!!): Výslovne potvrdzuje, že objekt nie jenull. Ak je, vyhodíNullPointerException.// Použiť vedome, môže viesť k NPE val userName: String = user!!.name -
Elvisov operátor (
?:): Poskytuje predvolenú hodnotu, ak je ľavá strananull.val userName: String = user?.name ?: "Neznámy používateľ" -
Bloky
ifalebowhen: Explicitná kontrola nanull.if (user != null) { val userName = user.name } else { // Spracovanie prípadu, keď je user null } -
Funkcie
let,run,apply,withs bezpečným volaním:user?.let { // `it` v tomto bloku je nenullovateľný `User` val userName = it.name }
Voľba prístupu závisí od logiky programu a požadovaného správania v prípade, že je objekt null. Odporúča sa používať operátor bezpečného volania (?.) alebo Elvisov operátor (?:) na zabránenie NPE. Operátor !! by mal byť používaný s opatrnosťou.