foo
関数とクラスを用意しましょうBar
:
fun foo(key: String): String? {
// returns string or null
}
class Bar(x: String, y: String) {
// ...
}
それでは、コードを見てみましょう:
val x = foo("x")
val y = foo("y")
if (x.isNotEmpty() && y.isNotEmpty())
return Bar(x, y)
問題は、このコードがコンパイルされないことです。が必要なのでBar(x!!, y!!)
。
ただし、関数をその内容に置き換えると、!!
必要ありません。
val x = foo("x")
val y = foo("y")
if ((x != null && x.length() > 0) && (y != null && y.length() > 0))
return Bar(x, y)
関数から null チェックを解決できないのはなぜ.isNotEmpty()
ですか?