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

RealmMigrationNeededException when adding RealmList<Int> (Kotlin)

我想将 原始 列表添加到现有模型,但出现异常。
注意:这一切都是在 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:

Migration is required due to the following errors:
- Property 'Foo.idList' has been made optional.


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

将原始列表添加到模型的正确方法是什么?正确的迁移是什么?

其实你的迁移是正确的。如果您不希望列表能够包含 null 作为值(考虑到它是一个 RealmList<Integer>,其中 Integer 可以为 null),您应该添加 @Required 注释。