Comment vérifier si une variable lateinit est initialisée en Kotlin ?
Bonjour, collègues ! J'ai commencé à écrire en Kotlin relativement récemment et j'ai rencontré une situation. J'ai une classe dans laquelle j'utilise `lateinit var` pour une propriété. Tout fonctionne, mais je veux vérifier en toute sécurité si cette propriété a déjà été initialisée avant d'y accéder. Si j'essaie d'accéder à une variable `lateinit` non initialisée, j'obtiens une `UninitializedPropertyAccessException`, ce qui casse le programme.
Voici un exemple de mon code :
```kotlin
class MyApp {
lateinit var user: User
fun setup() {
// Ici, user peut être initialisé ou non
if (someCondition) {
user = User("Alice")
}
}
fun printUser() {
// Je veux vérifier si user est initialisé pour éviter l'erreur
println(user.name) // Si non initialisé — une exception sera levée
}
}
```
J'ai essayé d'écrire `if (user != null)`, mais le compilateur se plaint qu'on ne peut pas vérifier les variables `lateinit` de cette façon. Dans la doc