Junior
Šta će se desiti ako pristupite polju objekta koji može biti null?
sobes.tech АИ
Одговор од АИ
NullPointerException (NPE). Pojavljuje se kada pokušate da pozovete metodu ili pristupite polju objekta čija je referenca null.
Primer:
data class User(val name: String)
fun printUserName(user: User?) {
// Ako je user == null, doći će do NullPointerException
println(user.name)
}
Da biste izbegli NPE, možete koristiti:
- Provere na null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Korisnik je null") } } - Operator sigurnog poziva (
?.):fun printUserName(user: User?) { println(user?.name) // Ispisaće null ako je user null, inače ime } - Elvis operator (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Podrazumevano ime" // Dodeli "Podrazumevano ime" ako je user?.name null println(userName) } - Tipovi bez null (u Kotlinu):
// Ova metoda prihvata samo ne-null objekat User fun printUserName(user: User) { println(user.name) // Garantovano ne null }