android - Realm 对象覆盖 equals 方法

标签 android realm

我的 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/

相关文章:

java - SQLite 与列表

java - 我无法从 sqlite 解析日期。解析异常 : Unparseable date

ios - Realm 条目的更新日期

android - Realm 为我的 apk 添加额外的大小

android - 结合使用 Firebase 和 Realm 时发生崩溃 - : Lio/reactivex/Observable; 的解析失败

android - 设置适配器或RecyclerView在Firestore功能后刷新

android - 我如何获得安装应用程序名称的列表

android - 在 Android 的 EditText 上强制全屏

php - 验证以确保上传的SQLite数据不重复?

ios - 如何使用 Realm 和 Swift 从 TableView 中删除一个部分和一行?