주석 유형 필수


  • @Retention(RUNTIME)
    @Target(FIELD)
    public @interface Required
    이 주석은 io.realm.RealmList 의 필드 또는 요소를 null을 허용하지 않는 것으로 표시합니다.

    Boolean, Byte, Short, Integer, Long, Float, Double, String, byte[], Date 유형의 필드에 Required 주석이 달린 경우 해당 필드는 null (으)로 설정할 수 없으며 발생 시 Realm에서 예외가 발생합니다.

    기본 유형이 있는 필드는 암시적으로 필수입니다. 참고로, String 은 기본 유형이 아니므로 Java에서는 \@Required 로 표시되지 않는 한 기본적으로 null을 허용합니다. Kotlin에서는 그 반대가 참이므로 String 는 null이 아닙니다. Kotlin에서 null 허용 문자열을 지정하려면 String? 사용해야 합니다.

    이 주석이 RealmList 에 사용되면 주석은 목록 자체가 아닌 목록 내부의 요소에 적용됩니다. 목록 자체는 항상 null이 아닙니다. 즉, 이 주석으로 표시된 목록은 데이터 유형에서 허용하더라도 null 값을 보유하도록 허용되지 않습니다. \@Required 로 표시된 목록에 null 값을 저장하려고 하면 Realm은 예외를 발생시킵니다.

    RealmAny 필드의 내부 값은 항상 null을 허용하므로 이 주석은 RealmAny 에서 사용할 수 없습니다. RealmAny\@Required 로 표시하려고 하면 Realm에서 예외가 발생합니다.

    Required 주석을 다른 Realm 객체에 대한 참고가 포함된 RealmList 에 놓으면 컴파일이 실패합니다.