所需的注释类型


  • @Retention(RUNTIME)
    @Target(FIELD)
    public @interface Required
    此注解会将io.realm.RealmList中的字段或元素标记为不可为空。

    当类型为Boolean, Byte, Short, Integer, Long, Float, Double, String, byte[], Date的字段用Required注解时,不能将其设置为null ,如果发生这种情况,Realm 将抛出异常。

    具有基元类型的字段是隐式必需的。 请注意, String不是基元类型,因此在 Java 中,除非标记为\@Required ,否则默认为可为 null。 在 Kotlin 中,情况正好相反,因此String是非空的。 要在 Kotlin 中指定可为 null 的字符串,应使用String?

    如果将此注解用在RealmList上,则该注解将应用于列表内的元素,而不是列表本身。 列表本身始终为非空值。 这意味着标有此注解的列表决不允许保存null值,即使数据类型允许。 如果您尝试将 null 值存储到标记为\@Required的列表中,Realm 将引发异常。

    此注解不能用在RealmAny上,因为 RealmAny 字段的内部值始终可为 null。 如果您尝试将RealmAny标记为\@Required ,Realm 会抛出异常。

    如果将Required注解放在包含对其他 Realm 对象的引用的RealmList中,则编译将失败。