У меня вопрос о том, как 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 управляет этим сравнением в первый раз?
Спасибо за вашу помощь.