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):
// Ин усул танҳо объектҳои User, ки null нестанд, қабул мекунад fun printUserName(user: User) { println(user.name) // Бе нол, кафолат дода шудааст }