Travail idiomatique avec les valeurs nullable en Kotlin : conversion et accès sécurisé
Bonjour ! J'ai récemment commencé à apprendre Kotlin après Java et je n'arrive pas à m'habituer au système strict des types nullable. J'ai plusieurs scénarios où je suis confus sur la façon de gérer correctement les null.
Par exemple, j'ai une fonction qui retourne une String? nullable depuis la base de données. Je dois :
1. Vérifier si la valeur n'est pas null
2. Si elle n'est pas null, la convertir en Int (parsing)
3. Si le parsing échoue ou si la valeur est null — retourner 0
J'ai écrit ce code, mais il a l'air horrible :
```kotlin
fun parseNullableInt(value: String?): Int {
if (value != null) {
return try {
value.toInt()
} catch (e: NumberFormatException) {
0
}
} else {
return 0
}
}
```
Cela fonctionne, mais il existe sûrement une façon plus concise et idiomatique. Je m'intéresse aussi à :
- Comment appeler des méthodes sur des objets nullable en toute sécurité ?
- Comment convertir des types nullable en non-nullable avec une valeur par défaut ?
- Qu'est-ce que l'opérateur Elvis et quand l'utiliser ?