android - “ignoreKotlinNullability”实际做什么?

标签 android gradle kotlin realm

在项目开发的某一时刻,我将自此部分添加到了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/

相关文章:

android - onAnimationEnd 没有被调用以进行 imageview 旋转动画

android - 如何在 Android 中以编程方式更改 ConstraintLayout subview 的约束?

java - 在 Android 中搜索整数 ArrayList 的最佳方法

github - 从Travis CI上的Forket存储库构建拉取请求时,无权执行任何SonarQube分析

java - 如何访问另一个对象中的 Android Activity?

java - Gradle:依赖顺序如何产生影响?

gradle - 为什么这个 gradle 构建脚本没有编译 java 类?

ubuntu - 如何使用 Kotlin 的反射?

java - Mockito.mock 何时创建部分模拟而不是 "full"模拟?

android - 在 safeArgs 中将 ArrayList 作为参数传递