Junior
Cosa succede se si accede a un campo di un oggetto che può essere null?
sobes.tech AI
Risposta dell'AI
NullPointerException (NPE). Si verifica quando si tenta di chiamare un metodo o accedere a un campo di un oggetto a cui si fa riferimento, e tale riferimento è null.
Esempio:
data class User(val name: String)
fun printUserName(user: User?) {
// Se user == null, si verifica una NullPointerException
println(user.name)
}
Per evitare NPE, puoi usare:
- Controlli di null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Utente è null") } } - Operatore di chiamata sicura (
?.):fun printUserName(user: User?) { println(user?.name) // Mostrerà null se user == null, altrimenti il nome } - Operatore Elvis (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Nome di default" // Assegna "Nome di default" se user?.name == null println(userName) } - Tipi non null (in Kotlin):
// Questo metodo accetta solo oggetti User non null fun printUserName(user: User) { println(user.name) // Garantito non null }