Tipo de anotação obrigatória
-
@Retention(RUNTIME) @Target(FIELD) public @interface Required
Esta anotação marcará o campo ou o elemento noio.realm.RealmList
como não anulável.Quando um campo do tipo
Boolean, Byte, Short, Integer, Long, Float, Double, String, byte[], Date
é anotado comRequired
, ele não pode ser definido comonull
e o Realm lançará uma exceção se isso acontecer.Campos com tipos primitivos são implicitamente exigidos. Observe que
String
não é um tipo primitivo, portanto, em Java, ele é anulável por padrão, a menos que esteja marcado como\@Required
. Em Kotlin, o inverso é verdadeiro, portanto, umString
não é nulo. Para especificar uma cadeia anulável em Kotlin, você deve usarString?
.Se esta anotação for utilizada em um
RealmList
, a anotação será aplicada aos elementos dentro da lista e não à própria lista. A lista em si é sempre não nula. Isso significa que uma lista marcada com esta anotação nunca tem permissão para manternull
valores, mesmo que o tipo de dados permita isso. O Realm lançará uma exceção se você tentar armazenar valores nulos em uma lista marcada com\@Required
.Essa anotação não pode ser usada em um
RealmAny
, pois o valor interno de um campo RealmAny é sempre anulável. O Realm lançará uma exceção se você tentar marcar umRealmAny
como\@Required
.A compilação falhará se a anotação
Required
for colocada e umRealmList
contendo referências a outros Objeto de Realm.