Se eu tiver um valor nulo Boolean b, posso fazer a seguinte comparação em Java:
Boolean b = ...;
if (b != null && b) {
/* Do something */
} else {
/* Do something else */
}
No Kotlin, posso obter o mesmo usando o !!operador:
val b: Boolean? = ...
if (b != null && b!!) {
/* Do something */
} else {
/* Do something else */
}
No entanto, o uso de me !!parece um pouco superficial, contornando o sistema de segurança nulo.
Existe uma abordagem mais elegante para isso?
Editar Parece que eu simplifiquei um pouco demais. Para variáveis locais, como mostra Banthar , funciona. No entanto, meu booleano bé na verdade uma "propriedade com um campo de apoio" (não estou realmente atualizado ainda sobre o que isso impõe). Este é o resultado:
bpode ser nulle um dos recursos do Kotlin é o Null Safety , que fornece erros de compilação ao tentar avaliar referências anuláveis. Assim, usando simples bdá um erro de compilação :)
b != nilentenderá isso antes de verificar o lado direito?
val r = b?doSomething() ?: doSomethingElse()deveria funcionar.

!!be não simplesmenteb? (Eu não sou tão familiarizado com Kotlin, apenas curiosidades)