Android 什么是;ignoreKotlinNullability“;真的吗?

Android 什么是;ignoreKotlinNullability“;真的吗?,android,gradle,kotlin,realm,Android,Gradle,Kotlin,Realm,在项目开发的某个阶段,我在gradle中添加了以下内容: kapt { arguments { arg("realm.ignoreKotlinNullability", true) } } 我记得这样做是为了防止迁移过程中的崩溃,在网上查找证明这是它的主要用途 但它实际上做什么呢?我在任何地方都找不到任何官方文件来证明和假设。我不确定我是否应该移除它,因为我不知道我是否应该将它视为一种功能或某种我很久以前使用过的绷带 任何地方都有RealmDB gradle标志

在项目开发的某个阶段,我在gradle中添加了以下内容:

kapt {
    arguments {
        arg("realm.ignoreKotlinNullability", true)
    }
}
我记得这样做是为了防止迁移过程中的崩溃,在网上查找证明这是它的主要用途

但它实际上做什么呢?我在任何地方都找不到任何官方文件来证明和假设。我不确定我是否应该移除它,因为我不知道我是否应该将它视为一种功能或某种我很久以前使用过的绷带


任何地方都有RealmDB gradle标志和参数的官方列表吗?

当您使用Kotlin时,Realm会检查字段的可空性

比如说,

class Blah: RealmObject() {
    var group: Group? = null
}
然后组不会得到隐式@Required注释

但如果你这样做了

class Blah: RealmObject() {
    var group: Group = Group()
}
这是行不通的,因为Realm不能保证单个链接的非空性。所以它会抛出你得到的错误

如果您想忽略这一点,例如,您正在创建一个避免返回空值的备份字段

kapt {
  arguments {
    arg("realm.ignoreKotlinNullability", true)
  }
}
在这种情况下,Realm不会尝试隐式处理您的可空性(并将Kotlin的可空性映射到字段的@Required)。但是只有当你真正知道自己在做什么的时候,你才应该使用这个