微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Realm 如何确定两个文件是同一个 RealmObject? 包更改

如何解决Realm 如何确定两个文件是同一个 RealmObject? 包更改

Realm 在 android 中用来判断两个不同文件是否相同 RealmObject 的标准是什么? 只是类名还是整个包名?

更具体地说。

  1. 假设我有 com.company.MyRealmObject.kt,我将其重构为 com.company2.MyRealmObject.kt
  2. 假设我在 Gradle 模块 com.company.MyRealmObject.kt 中有 :app,我将其移动到 Say that I have com.company.MyRealmObject.ktin Gradle module:library_db`

这些操作是否会让 Realm 认为更改前后的 MyRealmObject 是不同的 RealmObjects 因此需要迁移,或者它们是否会被视为相同的 RealmObjects 而不管包和文件如何它们具有相同的简单类名?

谢谢。

解决方法

从我的实验来看,只要类名相同,Realm 就会认为是相同的RealmObject。 项目中文件包的名称无关紧要,完全取决于类的名称。

这似乎与这条评论一致:https://github.com/realm/realm-java/issues/6403#issuecomment-454427296

我们的代理类将包路径编码为最终类的一部分 名称,但移动类应该没问题,因为简单的名称是 相同,所以它应该在 Realm 中转换为相同的简单名称 文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。