我有一个关于 Kotlin 如何管理NULL
安全性的问题。 我有这个代码:
imageFile.addListener { _ , oldValue : File?, newValue : File? ->
run{
if(oldValue?.absolutePath != newValue?.absolutePath) loadFile()
}
}
它工作正常,但是如果我将其更改为
imageFile.addListener { _ , oldValue : File?, newValue : File? ->
run{
if(oldValue!!.absolutePath != newValue?.absolutePath) loadFile()
}
}
它抛出了一个NullPointerException
,这很明显,因为当应用程序启动时oldValue
NULL
.
Kotlin 如何在第一次进行这种比较?
感谢您的帮助。
您正在使用避免NullPointerException
的安全调用:
选项是安全呼叫运算符,书面
?.
如果其中的任何属性为 null,则返回 null。
第二个选项非空断言运算符引发异常
这!!算子
非空断言运算符 (!!( 将任何值转换为非空类型,并在值为 null 时引发异常