Annotation Type Required
-
@Retention(RUNTIME) @Target(FIELD) public @interface Required
This annotation will mark the field or the element inio.realm.RealmList
as not nullable.When a field of type
Boolean, Byte, Short, Integer, Long, Float, Double, String, byte[], Date
is annotated withRequired
, it cannot be set tonull
and Realm will throw an exception if it happens.Fields with primitive types are implicitly required. Note,
String
is not a primitive type, so in Java it is default nullable unless it is marked\@Required
. In Kotlin the reverse is true, so aString
is non-null. To specify a nullable String in Kotlin you should useString?
.If this annotation is used on a
RealmList
, the annotation is applied to the elements inside the list and not the list itself. The list itself is always non-null. This means that a list marked with this annotation are never allowed to holdnull
values even if the datatype would otherwise allow it. Realm will throw an exception if you attempt to store null values into a list marked\@Required
.This annotation cannot be used on a
RealmAny
, as the inner value of a RealmAny field is always nullable. Realm will throw an exception if you attempt mark aRealmAny
as\@Required
.Compiling will fail if the
Required
annotation is put an aRealmList
containing references to other Realm objects.