添加RealmList <int>时出现RealmMigrationNeededException(Kotlin)

时间:2017-12-22 10:48:35

标签: android kotlin realm realm-migration

我想将原语列表添加到现有模型中,但我得到一个例外 注意:这完成了所有它Kotlin

这是模特:

open class Foo(
    @PrimaryKey var id: Int = 0
) : RealmObject()

现在我要添加以下字段:

var idList: RealmList<Int> = RealmList()

这可能是一个空列表,所以我用空白RealmList初始化它(以前用于非基本列表字段)。

我的迁移看起来像这样:

schema.get("Foo")
        ?.addRealmListField("idList", Int::class.java)

运行应用时,我得到RealmMigrationNeededException

  

由于以下错误,需要迁移:
   - Property&#39; Foo.idList&#39;已被选为。

我可以通过将@Required添加到模型中的新字段来解决此问题,但我不确定列表是否仍然为空/ null。

将原始列表添加到模型中的正确方法是什么,并为此进行了正确的迁移?

1 个答案:

答案 0 :(得分:2)

实际上,您的迁移是正确的。如果您不希望列表能够包含null作为值(考虑它是RealmList<Integer>,其中Integer可以为null),则应添加{{ 1}}注释。