Si j'ai un nullable Boolean b, je peux faire la comparaison suivante en Java:
Boolean b = ...;
if (b != null && b) {
/* Do something */
} else {
/* Do something else */
}
Dans Kotlin, je peux réaliser la même chose en utilisant l' !!opérateur:
val b: Boolean? = ...
if (b != null && b!!) {
/* Do something */
} else {
/* Do something else */
}
Cependant, l'utilisation de !!me semble un peu sommaire, contournant le système de sécurité nul.
Y a-t-il une approche plus élégante pour cela?
Edit Il semble que j'ai un peu trop simplifié. Pour les variables locales, comme le montre Banthar , cela fonctionne. Cependant, mon booléen best en fait une "propriété avec un champ de sauvegarde" (je ne suis pas encore vraiment au courant de ce que cela impose). Voici le résultat:
bpeut être nullet l'une des fonctionnalités de Kotlin est Null Safety , qui donne des erreurs de compilation lors de la tentative d'évaluation de références Nullable. Ainsi, l'utilisation de plain bdonne une erreur de compilation :)
b != nilattraperez pas avant de vérifier le bon côté?
val r = b?doSomething() ?: doSomethingElse()devrait fonctionner.

!!bet pas simplementb? (Je ne connais pas très bien kotlin, juste des curiosités)