在使用4.3.3
版REALM
进行Android开发时,我收到以下错误:
Error: Field "groupName" with type "pizware.evaluapp.Models.Group" can not be @Required or @NotNull.
但我不会对任何字段使用任何标签。有谁知道发生了什么?
答案 0 :(得分:8)
当您使用Kotlin时,Realm会检查您的字段的可空性。
例如,
class Blah: RealmObject() {
var group: Group? = null
}
然后group
没有隐式@Required
注释。
但如果你这样做
class Blah: RealmObject() {
var group: Group = Group()
}
这不会起作用,因为Realm无法保证单一链接的不可空性。所以它会抛出你得到的错误。
如果你想忽略这一点,例如你正在建立一个避免空值返回的支持字段
get() = group ?: Group()
然后你可以使用(自4.1.0开始):
kapt {
arguments {
arg("realm.ignoreKotlinNullability", true)
}
}
在这种情况下,Realm不会试图隐含地处理你的可空性(并将Kotlin的可空性映射到字段' s @Required
)。但是,只有在你真正知道自己在做什么的时候才应该使用它。