Sobes.tech
Junior

Mis juhtub, kui pöördute objekti välja, mis võib olla null?

sobes.tech AI

Vastus AI-lt

NullPointerException (NPE). Occurs when you try to call a method or access a field of an object whose reference is null.

Example:

data class User(val name: String)

fun printUserName(user: User?) {
    // If user == null, a NullPointerException will occur
    println(user.name)
}

To avoid NPE, you can use:

  • null checks:
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("User is null")
        }
    }
    
  • Safe call operator (?.):
    fun printUserName(user: User?) {
        println(user?.name) // Will print null if user == null, otherwise the name
    }
    
  • Elvis operator (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Default Name" // Assigns "Default Name" if user?.name is null
        println(userName)
    }
    
  • Non-null types (in Kotlin):
    // This method accepts only non-null User objects
    fun printUserName(user: User) {
        println(user.name) // Guaranteed not null
    }