不能@Required或@NotNull

在使用REALM版本4.3.3进行Android开发时,出现以下错误:

Error: Field "groupName" with type "pizware.evaluapp.Models.Group" can not be @Required or @NotNull.

但是我没有在任何领域使用这些标签。 有谁知道发生了什么事?

当你使用Kotlin的时候,Realm会检查你的领域的可空性。

例如,

 class Blah: RealmObject() { var group: Group? = null } 

然后group不会得到隐式的@Required注解。

但是,如果你这样做

 class Blah: RealmObject() { var group: Group = Group() } 

这是行不通的,因为Realm不能保证单一链接的不可空性。 所以它会抛出你得到的错误。

如果你想忽略这个,因为例如你正在做一个避免空值返回的支持字段,那么你可以使用(自4.1.0以来):

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

在这种情况下,Realm不会试图隐式处理你的可空性(并且把Kotlin的可空性映射到字段的@Required )。 但是只有当你真的知道你在做什么时,你才应该使用它。