我的ObjectA模型如下所示:

public class ObjectA extends RealmObject {

    @Override
    public boolean equals(Object objectA) {

    }
}


在我的一个片段中,我有一个编辑表单来更改ObjectA实例的属性,当用户向后压出该片段时,我想显示一个“放弃更改”对话框。

在此片段中,我引用了我正在编辑的objectA的简单POJO。看起来像这样:

    public ObjectA objectA;
    public ObjectA originalObjectA = realm.copyFromRealm(objectA);


现在我们可以在领域模型中覆盖equals方法了,我可以检测到更改,但是为了获得对覆盖方法的调用,我必须这样做:

    originalObjectA.equals(objectA);


并非相反:

    objectA.equals(originalObjectA);


知道为什么我只能从POJO引用而不是实时域对象调用自定义的equals方法吗?

最佳答案

我们修复了0.88.3中的一个错误,该错误导致自定义的equal方法被覆盖。听起来您被该错误击中了:https://github.com/realm/realm-java/blob/master/CHANGELOG.md

升级到0.88.3或0.90.0应该可以解决问题。

关于android - Realm 对象覆盖等于方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37121084/

10-11 00:12