Sobes.tech
Junior

Que se passera-t-il si on accède à un champ d'un objet qui peut être null?

sobes.tech IA

Réponse de l'IA

NullPointerException (NPE). Se produit lorsque vous essayez d'appeler une méthode ou d'accéder à un champ d'un objet dont la référence est null.

Exemple:

data class User(val name: String)

fun printUserName(user: User?) {
    // Si user == null, une NullPointerException se produira ici
    println(user.name)
}

Pour éviter NPE, vous pouvez utiliser:

  • Vérifications de null:
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("L'utilisateur est null")
        }
    }
    
  • Opérateur d'appel sécurisé (?.):
    fun printUserName(user: User?) {
        println(user?.name) // Affichera null si user == null, sinon le nom
    }
    
  • Opérateur Elvis (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Nom par défaut" // Assignera "Nom par défaut" si user?.name == null
        println(userName)
    }
    
  • Types non nuls (en Kotlin):
    // Cette méthode accepte uniquement un objet User non nul
    fun printUserName(user: User) {
        println(user.name) // Garantit non null
    }