问题描述
Realm 在 android 中用来判断两个不同文件是否相同 RealmObject
的标准是什么?
只是类名还是整个包名?
更具体地说。
- 假设我有
com.company.MyRealmObject.kt
,我将其重构为com.company2.MyRealmObject.kt
。 - 假设我在 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 中转换为相同的简单名称 文件。