パッケージ io.realm.annotations
必須の注釈タイプ
-
@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 ではその逆が true であるため、String
は null 以外になります。 で null 可能なstringKotlinString?
を指定するには、 を使用する必要があります。この注釈を
RealmList
で使用する場合、注釈はリスト自体ではなく、リスト内の要素に適用されます。 リスト自体は常に null 以外です。 つまり、この注釈でマークされたリストでは、データ型で許可されている場合でも、null
値を保持することは 許可されません 。\@Required
とマークされたリストに null 値を保存しようとすると、Realm は例外をスローします。この注釈は、RealmAny フィールドの内部値は常に null 可能なため、
RealmAny
では使用できません。RealmAny
を\@Required
としてマークしようとすると、Realm は例外をスローします。Required
アノテーションに他の Realm オブジェクトへの参照を含むRealmList
が付けられている場合、コンパイルは失敗します。