Comment vérifier si une variable lateinit est initialisée en Kotlin ?
Bonjour à tous ! J'ai récemment commencé à apprendre Kotlin et j'ai rencontré un problème avec l'utilisation des variables lateinit.
J'ai une classe dans laquelle je déclare une propriété avec le modificateur lateinit, car je ne peux pas l'initialiser dans le constructeur — la valeur provient d'une source externe (par exemple, après le chargement de données ou l'injection de dépendances via DI). Voici un exemple simplifié :
```kotlin
class UserManager {
lateinit var userName: String
fun loadUser() {
// Simulation de chargement de données
userName = "Alice"
}
fun greetUser() {
// Ici, une erreur peut se produire si loadUser() n'a pas encore été appelé
println("Hello, $userName")
}
}
```
Le problème est que si j'appelle `greetUser()` avant que `loadUser()` n'ait assigné une valeur, j'obtiens une `UninitializedPropertyAccessException`. Je souhaite vérifier si la variable est initialisée pour éviter cette erreur et éventuellement exécuter une action par défaut.
Dites-moi, y a-t-il un moyen en Kotl
No answers yet.
Connectez-vous pour laisser une réponse
Blogs