Mis juhtub, kui pääsete ligi nullable objekti väljadele Kotlinis?
sobes.tech AI
Vastus AI-lt
Kui te pääsete objekti nullable välja ilma nullkontrollita, tekib NullPointerException (NPE).
Turvalise juurdepääsu jaoks võite kasutada järgmisi lähenemisviise:
-
Turvaline kutsesüsteem (
?.): Tagastabnull, kui objekt onnull, vastasel juhul teostab kutsumise.// Oletame, et user? on User? val userName: String? = user?.name -
!!mitte-null kinnitamise operaator: Kinnitab selgelt, et objekt ei olenull. Kui on, viskabNullPointerException.// Kasutada teadlikult, võib viia NPE-ni val userName: String = user!!.name -
Elvis operaator (
?:): Pakub vaikimisi väärtust, kui vasakpoolne objekt onnull.val userName: String = user?.name ?: "Tundmatu kasutaja" -
ifvõiwhenplokid: Selgenull-kontroll.if (user != null) { val userName = user.name } else { // Töötle juhtumit, kui user on null } -
let,run,apply,withfunktsioonid turvalise kutsumisega:user?.let { // `it` selles plokis on mitte-null `User` val userName = it.name }
Valik sõltub programmi loogikast ja soovitud käitumisest juhul, kui objekt on null. Üldiselt soovitatakse kasutada turvalise kutsumise (?.) või Elvisi (?:) operaatorit NPE vältimiseks. !! operaatorit tuleks kasutada ettevaatusega.