Моя конечная цель - обновить пользовательский интерфейс при изменении свойства объекта.
Я читал о моем подходе здесь: https://www.kotlindevelopment.com/delegates-observable/
Вот мой сокращенный код, который никогда не отображает тост, поскольку classA.onChange всегда имеет значение null.
class A {
var propertyToObserve:Long by observable(0L) { _, oldValue, newValue ->
onChange?.invoke(oldValue, newValue)
}
var onChange: ((Long, Long) -> Unit)? = null
}
class B {
var classA = A()
classA.onChange = {
Toast.makeText(this, "Property changed", Toast.LENGTH_SHORT).show()
}
A.propertyToObserve = 15L
}