对象更改

这个密封接口描述了可以观察到的 Realm 对象可能发生的变化。

特定状态由特定子类InitialObjectUpdatedObjectDeletedObject 表示

因此,可以通过多种方式使用变更:

// Variant 1: Switch on the sealed interface
realm.filter<Person>().first().asFlow()
.collect { objectChange: ObjectChange<Person> ->
when(objectChange) {
is InitialObject -> initPersonUI(objectChange.obj)
is UpdatedObject -> updatePersonUi(objectChange.obj, objectChange.changedFields)
is DeletedObject -> removePersonUi()
}
}


// Variant 2: Just pass on the object
realm.filter<Person>().first().asFlow()
.collect { objectChange: ObjectChange<Person> ->
handleChange(objectChange.obj)
}

对于更新更改的状态,提供了一个列表,其中包含先前版本中更新的字段名称。

继承者

属性

链接已复制到剪贴板
摘要 覆盖 val obj: O?

返回正在观察的对象的最新状态。 如果对象已被删除,则返回null