Kas notiks, ja piekļūsiet nullable objekta laukam Kotlin?
sobes.tech AI
Atbilde no AI
Ja piekļūstat nullable objekta laukam bez pārbaudes uz null, notiks NullPointerException (NPE).
Drošai piekļūšanai jūs varat izmantot šādus pieejas veidus:
-
Drošas izsaukšanas operators (
?.): Atgriežnull, ja objekts irnull, citādi veic izsaukumu.// Pieņemsim, ka user? ir User? val userName: String? = user?.name -
!!ne-null apstiprināšanas operators: Skaidri apstiprina, ka objekts navnull. Ja ir, izmetNullPointerException.// Apzināti lietot, var novest pie NPE val userName: String = user!!.name -
Elvis operators (
?:): Nodrošina noklusējuma vērtību, ja kreisais objekts irnull.val userName: String = user?.name ?: "Nezināms lietotājs" -
ifvaiwhenbloki: Skaidranullpārbaude.if (user != null) { val userName = user.name } else { // Apstrādāt gadījumu, ja user ir null } -
let,run,apply,withfunkcijas ar drošu izsaukumu:user?.let { // `it` šajā blokā ir ne-null `User` val userName = it.name }
Izvēle ir atkarīga no programmas loģikas un vēlamās uzvedības gadījumā, ja objekts ir null. Parasti ieteicams izmantot drošu izsaukuma operatoru (?.) vai Elvis operatoru (?:) NPE novēršanai. Operatoru !! vajadzētu izmantot ar piesardzību.