Junior
Co se stane, když se pokusíte přistoupit k poli objektu, který může být null?
sobes.tech AI
Odpověď od AI
NullPointerException (NPE). Dochází, když se pokusíte zavolat metodu nebo přistoupit k poli objektu, jehož odkaz je null.
Příklad:
data class User(val name: String)
fun printUserName(user: User?) {
// Pokud je user == null, dojde k NullPointerException
println(user.name)
}
Abyste se vyhnuli NPE, můžete použít:
- Kontroly na null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Uživatel je null") } } - Bezpečný operátor volání (
?.):fun printUserName(user: User?) { println(user?.name) // Vypíše null, pokud je user null, jinak jméno } - Elvisův operátor (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Výchozí jméno" // Při null přiřadí "Výchozí jméno" println(userName) } - Není-nullové typy (v Kotlinu):
// Tato metoda přijímá pouze nenullový objekt User fun printUserName(user: User) { println(user.name) // Garantováno, že není null }