领域对象覆盖equals方法

时间:2016-05-09 16:41:18

标签: android realm

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方法而不是我的live realm对象吗?

1 个答案:

答案 0 :(得分:1)

我们修复了0.88.3中的一个错误,该错误导致自定义的等同方法被覆盖。听起来你正受到这个错误的影响:https://github.com/realm/realm-java/blob/master/CHANGELOG.md

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