我的 ObjectA
模型如下所示:
public class ObjectA extends RealmObject {
@Override
public boolean equals(Object objectA) {
}
}
在我的一个 fragment 中,我有一个编辑表单来更改 ObjectA
实例的属性,我想在用户退出此 fragment 时显示一个丢弃更改对话框。
在这个 fragment 中,我引用了我正在编辑的 objectA
的简单 POJO。它看起来像这样:
public ObjectA objectA;
public ObjectA originalObjectA = realm.copyFromRealm(objectA);
现在我们可以在我们的 Realm 模型中覆盖 equals
方法,我可以检测到变化,但是为了调用我覆盖的方法,我必须这样做:
originalObjectA.equals(objectA);
不是反过来:
objectA.equals(originalObjectA);
知道为什么我只能从 POJO 引用而不是我的实时 Realm 对象调用我的自定义 equals 方法吗?
最佳答案
我们修复了 0.88.3 中导致自定义相等方法被覆盖的错误。听起来你被那个错误击中了:https://github.com/realm/realm-java/blob/master/CHANGELOG.md
升级到 0.88.3 或 0.90.0 应该可以解决问题。
关于android - Realm 对象覆盖 equals 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121084/