Co se stane, když přistoupíte k nullable poli objektu v Kotlinu?
sobes.tech AI
Odpověď od AI
Pokud přistupujete k nullable poli objektu bez kontroly na null, dojde k výjimce NullPointerException (NPE).
Pro bezpečný přístup můžete použít následující přístupy:
-
Operátor bezpečného volání (
?.): Vracínull, pokud je objektnull, jinak provádí volání.// Předpokládejme, že user? je uživatel? val userName: String? = user?.name -
Operátor potvrzení nenull (
!!): Výslovně potvrzuje, že objekt nenínull. Pokud je, vyhodíNullPointerException.// Použít vědomě, může vést k NPE val userName: String = user!!.name -
Elvisův operátor (
?:): Poskytuje výchozí hodnotu, pokud je levý objektnull.val userName: String = user?.name ?: "Neznámý uživatel" -
Bloky
ifnebowhen: Explicitní kontrola nanull.if (user != null) { val userName = user.name } else { // Zpracování případu, kdy je user null } -
Funkce
let,run,apply,withs bezpečným voláním:user?.let { // `it` uvnitř tohoto bloku je nenullovatelné `User` val userName = it.name }
Volba přístupu závisí na logice programu a požadovaném chování v případě, že je objekt null. Obecně se doporučuje používat operátor bezpečného volání (?.) nebo Elvisův operátor (?:) k prevenci NPE. Operátor !! by měl být používán s opatrností.