Junior
¿Qué sucederá si se accede a un campo de un objeto que puede ser null?
sobes.tech AI
Respuesta de la IA
NullPointerException (NPE). Ocurre cuando intentas llamar a un método o acceder a un campo de un objeto cuya referencia es null.
Ejemplo:
data class User(val name: String)
fun printUserName(user: User?) {
// Si user == null, aquí ocurrirá NullPointerException
println(user.name)
}
Para evitar NPE, puedes usar:
- Comprobaciones de null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("El usuario es null") } } - Operador de llamada segura (
?.):fun printUserName(user: User?) { println(user?.name) // Mostrará null si user == null, de lo contrario, el nombre } - Operador Elvis (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Nombre por defecto" // Asignará "Nombre por defecto" si user?.name == null println(userName) } - Tipos no nulos (en Kotlin):
// Este método solo acepta objetos User no nulos fun printUserName(user: User) { println(user.name) // Garantizado no null }