在项目开发过程中的某一时刻,我在gradle中添加了自定义部分:
kapt {
arguments {
arg("realm.ignoreKotlinNullability", true)
}
}我记得这样做是为了防止在迁移过程中崩溃,并在网上查找证明这是它的主要用途。
但它实际上是做什么的呢?我在任何地方都找不到任何官方文件来证明和假设。我不确定我是否应该删除它,因为我不知道我是否应该将它视为一个功能或我很久以前应用的某种创可贴。
是否有RealmDB gradle标志和参数的官方列表?
发布于 2019-05-22 23:01:49
当你使用Kotlin时,Realm会检查你的字段的可空性。
例如,
class Blah: RealmObject() {
var group: Group? = null
}那么group就得不到隐式的@Required注释。
但如果你这样做了
class Blah: RealmObject() {
var group: Group = Group()
}这是行不通的,因为Realm不能保证单个链接的非空性。所以它会抛出你得到的错误。
如果您想忽略这一点,例如,您正在创建一个避免空值返回的后备字段
kapt {
arguments {
arg("realm.ignoreKotlinNullability", true)
}
}在这种情况下,Realm不会尝试隐式地处理您的可空性(并将Kotlin可空性映射到字段的@Required)。但是只有当你真正知道你在做什么的时候,你才应该使用它。
https://stackoverflow.com/questions/56259491
复制相似问题