【问题标题】:what does "ignoreKotlinNullability" actually do?“ignoreKotlinNullability”实际上是做什么的?
【发布时间】:2019-05-22 14:46:41
【问题描述】:

在我们项目开发的某一时刻,我已经将部分添加到我们的 gradle 中:

kapt {
    arguments {
        arg("realm.ignoreKotlinNullability", true)
    }
}

我记得这样做是为了防止在迁移过程中崩溃,并且在网上查找证明这是它的主要用途。

但它实际上做了什么?我在任何地方都找不到任何官方文档来证明和假设。我不确定是否应该删除它,因为我不知道我应该将其视为一项功能还是我很久以前应用的某种创可贴。

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

【问题讨论】:

    标签: android gradle kotlin realm


    【解决方案1】:

    当您使用 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)。但只有在您真正知道自己在做什么时才应该使用它。

    【讨论】:

      猜你喜欢
      • 2011-03-11
      • 2010-11-26
      • 2015-06-23
      • 2017-12-26
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多