주석 유형 필수
-
@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
에 놓으면 컴파일이 실패합니다.