Junior
Ce se întâmplă dacă accesezi un câmp al unui obiect care poate fi null?
sobes.tech AI
Răspuns de la AI
NullPointerException (NPE). Apare atunci când încerci să apelezi o metodă sau să accesezi un câmp al unui obiect a cărui referință este null.
Exemplu:
data class User(val name: String)
fun printUserName(user: User?) {
// Dacă user == null, va apărea NullPointerException
println(user.name)
}
Pentru a evita NPE, poți folosi:
- Verificări pentru null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Utilizatorul este null") } } - Operatorul de apel sigur (
?.):fun printUserName(user: User?) { println(user?.name) // Va afișa null dacă user == null, altfel numele } - Operatorul Elvis (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Nume implicit" // Atribuie "Nume implicit" dacă user?.name == null println(userName) } - Tipuri non-null (în Kotlin):
// Această metodă acceptă doar obiecte User non-null fun printUserName(user: User) { println(user.name) // Garantat non null }