Tipo de anotação obrigatória


  • @Retention(RUNTIME)
    @Target(FIELD)
    public @interface Required
    Esta anotação marcará o campo ou o elemento no io.realm.RealmList como não anulável.

    Quando um campo do tipo Boolean, Byte, Short, Integer, Long, Float, Double, String, byte[], Date é anotado com Required, ele não pode ser definido como null 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, um String não é nulo. Para especificar uma cadeia anulável em Kotlin, você deve usar String?.

    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 manter null 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 um RealmAny como \@Required.

    A compilação falhará se a anotação Required for colocada e um RealmList contendo referências a outros Objeto de Realm.