Junior
Co się stanie, jeśli odwołasz się do pola obiektu, który może być null?
sobes.tech AI
Odpowiedź od AI
NullPointerException (NPE). Występuje, gdy próbujesz wywołać metodę lub odwołać się do pola obiektu, którego odwołanie jest równe null.
Przykład:
data class User(val name: String)
fun printUserName(user: User?) {
// Jeśli user == null, wystąpi NullPointerException
println(user.name)
}
Aby uniknąć NPE, można użyć:
- Sprawdzania na null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Użytkownik jest null") } } - Operator bezpiecznego wywołania (
?.):fun printUserName(user: User?) { println(user?.name) // Wyświetli null, jeśli user == null, w przeciwnym razie imię } - Operator Elvisa (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Domyślna nazwa" // Przypisze "Domyślna nazwa", jeśli user?.name == null println(userName) } - Typy nie-nullowe (w Kotlin):
// Ta metoda przyjmuje tylko nie-nullowy obiekt User fun printUserName(user: User) { println(user.name) // Gwarantowane, że nie null }