在项目开发的某一时刻,我将自此部分添加到了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)。但是,只有在真正知道自己在做什么的情况下,才应使用此功能。
关于android - “ignoreKotlinNullability”实际做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56259491/