nullable がある場合Boolean b
、Java で次の比較を行うことができます。
Boolean b = ...;
if (b != null && b) {
/* Do something */
} else {
/* Do something else */
}
Kotlin では、演算子を使用して同じことを実現できます!!
。
val b: Boolean? = ...
if (b != null && b!!) {
/* Do something */
} else {
/* Do something else */
}
しかし、 の使用は!!
ヌルセーフティシステムを回避しているため、少し怪しい気がします。
これに対するよりエレガントなアプローチはありますか?
編集少し単純化しすぎたようです。ローカル変数の場合、バンタール示されているように、それは機能します。ただし、私のブール値はb
実際には「バッキング フィールドを持つプロパティ」です (これが何を強制するかについてはまだよくわかっていません)。結果は次のとおりです。
ベストアンサー1
等価演算子を使用して、 null 許容ブール値をtrue
、false
または と比較できます。null
var b: Boolean? = null
if (b == true) {
// b is not null and equals true
}
if (b == false) {
// b is not null and equals false
}
if (b != true) {
// b is null or equals false
}