Я написал следующий пример и проверил значение переменной ObserverA для объектов a и b.
Пример
class Test {
val observerA = Observer<String>{}
}
Проверка
val a = Test()
val b = Test()
AppLogger.LOGE("[A]ObserverA: ${a.observerA} [B]ObserverA: ${b.observerA}")
Результат
[A]ObserverA: com.test.Test$observerA$1@e3d8a1b
[B]ObserverA: com.test.Test$observerA$1@e3d8a1b
Я предполагаю, что a.observerA и a.observerA должны быть разными, но они ссылаются на один и тот же объект.
Когда я написал Наблюдатель А, как показано ниже, я увидел, что были созданы разные объекты.Я не знаю, почему появляется эта разница.
val observerA = object : Observer<String>{
override fun onChanged(t: String?) {
}
}