Junior
O que acontece se aceder a um campo de um objeto que pode ser nulo?
sobes.tech IA
Resposta da IA
NullPointerException (NPE). Acontece quando tenta chamar um método ou aceder a um campo de um objeto cuja referência é null.
Exemplo:
data class User(val name: String)
fun printUserName(user: User?) {
// Se user == null, ocorrerá NullPointerException
println(user.name)
}
Para evitar NPE, pode usar:
- Verificações de null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("O utilizador é null") } } - Operador de chamada segura (
?.):fun printUserName(user: User?) { println(user?.name) // Vai mostrar null se user == null, caso contrário, o nome } - Operador Elvis (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Nome Padrão" // Atribui "Nome Padrão" se user?.name == null println(userName) } - Tipos não nulos (em Kotlin):
// Este método aceita apenas objetos User não nulos fun printUserName(user: User) { println(user.name) // Garantido não null }