Junior
Какво се случва, ако се обърнете към поле на обект, който може да бъде null?
sobes.tech AI
Отговор от AI
NullPointerException (NPE). Произхожда, когато се опитате да извикате метод или да достъпите поле на обект, референцията към който е null.
Пример:
data class User(val name: String)
fun printUserName(user: User?) {
// Ако user == null, ще възникне NullPointerException
println(user.name)
}
За да избегнете NPE, можете да използвате:
- Проверки за null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Потребителят е null") } } - Оператор за безопасно извикване (
?.):fun printUserName(user: User?) { println(user?.name) // Ще изведе null, ако user == null, иначе името } - Оператор Елвис (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Стандартно име" // Ще присвои "Стандартно име", ако user?.name == null println(userName) } - Типове без null (в Kotlin):
// Този метод приема само не-nullов обект User fun printUserName(user: User) { println(user.name) // Гарантирано не null }