Junior
Mi történik, ha egy null értékű lehetőséget tartalmazó objektum mezőjéhez nyúlunk?
sobes.tech MI
Válasz az MI-től
NullPointerException (NPE). Akkor fordul elő, amikor megpróbálsz meghívni egy metódust vagy hozzáférni egy objektum mezőjéhez, amelynek hivatkozása null.
Példa:
data class User(val name: String)
fun printUserName(user: User?) {
// Ha user == null, NullPointerException lép fel
println(user.name)
}
Az NPE elkerülése érdekében használhatod:
- null-ellenőrzéseket:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Felhasználó null") } } - Biztonságos hívási operátor (
?.):fun printUserName(user: User?) { println(user?.name) // Null-t fog visszaadni, ha user == null, különben a nevet } - Elvis operátor (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Alapértelmezett név" // "Alapértelmezett név" értéket ad, ha user?.name null println(userName) } - Nem-null típusok (Kotlin-ben):
// Ez a metódus csak nem-null User objektumokat fogad el fun printUserName(user: User) { println(user.name) // Garantáltan nem null }