0Pricing
Android Academy · Leçon

Sécurité vis-à-vis des valeurs nulles

Comprenez le système de sécurité vis-à-vis des valeurs nulles de Kotlin : types pouvant être nuls, opérateur d’appel sécurisé, opérateur Elvis et élimination des NullPointerExceptions.

Sécurité vis-à-vis des valeurs nulles est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.

L’erreur à un milliard de dollars

En Java, toute variable peut être null, ce qui provoque une NullPointerException (NPE) à l’exécution — l’un des plantages les plus courants dans les applications Android.

Tony Hoare, qui a inventé la valeur null, a qualifié cette décision d’erreur à un milliard de dollars.

Kotlin élimine les NPE lors de la compilation grâce à son système de sécurité contre les valeurs nulles.

Types pouvant être nuls et non nuls

Dans Kotlin, les types sont non nuls par défaut. Pour autoriser la valeur null, ajoutez ? au type :

  • String — jamais null, garanti
  • String? — peut être null

Le compilateur impose cette règle : il ne vous laissera pas affecter null à un type non nul.

Exemple de types pouvant être nuls

Le compilateur détecte les erreurs liées à null avant l’exécution de votre application :

fun main() {
    val name: String = "Alice"   // never null
    // name = null  // COMPILE ERROR

    var nickname: String? = "Al"  // nullable
    nickname = null               // OK

    println(name)
    println(nickname)  // null
}

Opérateur d’appel sécurisé ?.

L’opérateur d’appel sécurisé ?. appelle une méthode uniquement si l’objet n’est pas null. S’il est null, il renvoie null au lieu de provoquer un plantage.

nickname?.length → renvoie la longueur, ou null si nickname est null.

Appels sécurisés en action

Utilisez ?. pour accéder en toute sécurité aux propriétés pouvant être nulles :

fun main() {
    var text: String? = "Hello"
    println(text?.length)   // 5
    println(text?.uppercase()) // HELLO

    text = null
    println(text?.length)   // null (no crash!)
    println(text?.uppercase()) // null
}

Opérateur Elvis ?:

L’opérateur Elvis ?: fournit une valeur par défaut lorsqu’une expression est null :

val len = text?.length ?: 0

Lisez-le ainsi : « la longueur de text, ou 0 si text est null ».

Il doit son nom à l’emoji Elvis 🕺, dont la coiffure ressemble à ?:.

Exemple de l’opérateur Elvis

Fournissez des valeurs par défaut sûres avec ?: :

fun main() {
    var name: String? = "Bob"
    println(name?.length ?: 0)  // 3

    name = null
    println(name?.length ?: 0)  // 0

    val display = name ?: "Anonymous"
    println(display)  // Anonymous
}

Vérifications de nullité avec if

Dans un bloc if (x != null), Kotlin convertit automatiquement le type pouvant être null en type non nul grâce à une conversion intelligente : vous n’avez pas besoin d’utiliser ?. dans le bloc.

Exemple de conversion intelligente

Kotlin restreint le type après une vérification de nullité :

fun printLength(text: String?) {
    if (text != null) {
        // 'text' is now String (non-nullable) here
        println("Length: ${text.length}") // no ?. needed
    } else {
        println("text is null")
    }
}

fun main() {
    printLength("Kotlin")  // Length: 6
    printLength(null)       // text is null
}

Vérification rapide

À quelle valeur s’évalue null?.length ?: -1 ?

Récapitulatif : sécurité contre les valeurs nulles

Le système de sécurité contre les valeurs nulles de Kotlin élimine les NPE :

  • Les types sont non nuls par défaut ; ajoutez ? pour autoriser null
  • ?. appel sécurisé — renvoie null au lieu de provoquer un plantage
  • ?: opérateur Elvis — fournit une valeur par défaut lorsque la valeur est null
  • Conversions intelligentes dans les blocs if (x != null)

Ensuite : structurer le code avec des classes et des objets.

Questions Fréquemment Posées

La leçon « Sécurité vis-à-vis des valeurs nulles » est-elle gratuite ?

Oui — le texte complet de « Sécurité vis-à-vis des valeurs nulles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Sécurité vis-à-vis des valeurs nulles » ?

Comprenez le système de sécurité vis-à-vis des valeurs nulles de Kotlin : types pouvant être nuls, opérateur d’appel sécurisé, opérateur Elvis et élimination des NullPointerExceptions. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Sécurité vis-à-vis des valeurs nulles » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Sécurité vis-à-vis des valeurs nulles
  2. Classes et objets
  3. Classes de données et classes scellées
  4. Fonctions d’extension et fonctions d’ordre supérieur
← Retour à Android Academy