パッケージ io.realm

クラス RealmAny


  • public class RealmAny
    extends Object
    RealmAny は、多形 Realm 値を表すために使用されます。

    このクラスのインスタンスは、常に明確なタイプの明確な値を保存します。 たとえば、それが double 値である場合は、その値を抽出するために double() として呼び出します。 現在保存されている値のタイプを確認するには、 getType() を呼び出します。 double を保存していないインスタンスで Double() を呼び出すと、 ClassCastExceptionが発生します。

    RealmAny は、Realm オブジェクト上でサポートされているすべてのタイプに対して 値タイプのように動作します。 つまり、タイプが Realm オブジェクトである場合を除き、Realm は RealmAny 値への変更を保持しません。 RealmAny が Realm オブジェクトを保持する場合、オブジェクトのコピーではなく、その参照のみを保持します。 したがって、Realm オブジェクトへの変更は、オブジェクトが削除された場合など、RealmAny 値に反映されます。 RealmAny インスタンスは不変であるため、RealmAny 属性を更新するには新しい インスタンスが必要です。

     
          anObject.realmAnyAttribute = RealmAny.valueOf(5);
          anObject.realmAnyAttribute = RealmAny.valueOf(10.f);
     
     
    特定の型の値を抽出するには、保存された型に関する明確な知識が必要であることを理解することが重要です。 保存されている値とは同じ型ではない特定の型に対して getter メソッドを呼び出すと、例外が発生します。

    RealmAny 多形データを処理するための推奨事項は、RealmAny 型とその内部値クラスの周囲にスイッチ ケースを記述することです。

     
          RealmAny realmAny = aRealmObject.realmAnyAttribute;
    
          switch (realmAny.getType()) {
              case OBJECT:
                  if (realmAny.getValueClass().equals(DogRealmModel.class)) {
                      DogRealmModel value = realmAny.asRealmModel(DogRealmModel.class);
                  }
              case INTEGER:
                  performAction(realmAny.asInteger());
                  break;
              case BOOLEAN:
                  performAction(realmAny.asBoolean());
                  break;
              case STRING:
                  performAction(realmAny.asString());
                  break;
              case BINARY:
                  performAction(realmAny.asBinary());
                  break;
              case DATE:
                  performAction(realmAny.asDate());
                  break;
              case FLOAT:
                  performAction(realmAny.asFloat());
                  break;
              case DOUBLE:
                  performAction(realmAny.asDouble());
                  break;
              case DECIMAL128:
                  performAction(realmAny.asDecimal128());
                  break;
              case OBJECT_ID:
                  performAction(realmAny.asObjectId());
                  break;
              case UUID:
                  performAction(realmAny.asUUID());
                  break;
              case NULL:
                  performNullAction();
                  break;
          }
     
     

    getValueClass() は、 RealmAny インスタンスによってラップされた内部値を表す Java クラスを返します。 結果のクラスが RealmModel() としてRealmModelの実現である場合は、RealmAny 値を Realm オブジェクト参照にキャストできます。

    RealmAny 値もソートすることもできます。 異なる RealmAny 型間で使用されるソート順(最低から最高の順)は次のとおりです。

    1. ブール値
    2. バイト/短い/整数/Long/浮動小数点数/ double /Decimal128
    3. byte[]/ string
    4. 日付
    5. ObjectId
    6. UUID
    7. RealmObject
    これは、 RealmQuery.sort(String)RealmQuery.minRealmAny(String)RealmQuery.maxRealmAny(String)の動作方法に影響します。 特にmin()max()は数値フィールドだけでなく、ソート順を使用して「最大」値または「最小」値を決定します。
    • ネストされたクラスの概要

      ネストされたクラス 
      修飾子と型 クラス 説明
      static class  RealmAny.Type
      RealmAny でサポートされているすべてのタイプを説明する列挙型。
    • メソッドの概要

      すべてのメソッド 静的メソッド インスタンス メソッド 具象メソッド 
      修飾子と型 方式 説明
      byte[] asBinary()
      この値を byte[] として取得します。それ以外の場合は例外をスローします。
      Boolean asBoolean()
      この値を 1 つの場合はブール値として取得しますが、そうでない場合は例外をスローします。
      Byte asByte()
      1 の場合はこの値を バイトとして取得し、そうでない場合は例外をスローします。
      Date asDate()
      この値を日付である場合は、この値を日付として取得します。そうでない場合は、例外がスローされます。
      Decimal128 asDecimal128()
      この値を Decimal128 として取得します。そうでない場合は例外をスローします。
      Double asDouble()
      この値が 1 の場合はdoubleとして取得します。そうでない場合は例外をスローします。
      Float asFloat()
      は、この値を浮動小数点数として取得します。それ以外の場合は例外をスローします。
      Integer asInteger()
      この値が 1 の場合は整数として取得されますが、そうでない場合は例外がスローされます。
      Long asLong()
      1 つの場合はこの値を Long として取得します。それ以外の場合は例外をスローします。
      ObjectId asObjectId()
      値が 1 である場合は ObjectId として取得され、そうでない場合は例外がスローされます。
      <T extends RealmModel>
      T
      asRealmModel​(Class<T> clazz)
      この値を RealmModel として取得します。そうでない場合は例外をスローします。
      Short asShort()
      1 つの場合、この値を 短縮 として取得します。そうでない場合は例外をスローします。
      String asString()
      この値を string である場合はそれを取得し、そうでない場合は例外をスローします。
      UUID asUUID()
      UUID である場合はこの値を UUID として取得し、そうでない場合は例外をスローします。
      boolean coercedEquals​(RealmAny other)  
      boolean equals​(Object other)
      2 つのRealmAnyは、内容が等しい場合にのみ.equalsになります。
      RealmAny.Type getType()
      この RealmAny オブジェクトの内部型を取得します。
      Class<?> getValueClass()
      この RealmAny 値によってラップされた内部値を表す Java クラスを返します。
      int hashCode()
      RealmAnyのハッシュ コードは、正確にその値のハッシュ コードです。
      boolean isNull()
      内部値が null の場合は true を返し、それ以外の場合は false を返します。
      static RealmAny nullValue()
      null 値の新しい RealmAny を作成します。
      String toString()  
      static RealmAny valueOf​(byte[] value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(RealmModel value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Boolean value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Byte value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Double value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Float value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Integer value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Long value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Short value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(String value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Date value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(UUID value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(Decimal128 value)
      指定された値を持つ新しい RealmAny を作成します。
      static RealmAny valueOf​(ObjectId value)
      指定された値を持つ新しい RealmAny を作成します。
    • メソッドの詳細

      • getType

        public RealmAny.Type getType()
        この RealmAny オブジェクトの内部型を取得します。
        次の値を返します。
        内部 RealmAny.Type
      • getValueClass

        @Nullable
        public Class<?> getValueClass()
        この RealmAny 値によってラップされた内部値を表す Java クラスを返します。
        次の値を返します。
        この RealmAny 値によってラップされた内部値を表す クラス。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Byte value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.INTEGER 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        バイト値を含む新しい RealmAny。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Short value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.INTEGER 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        短い Realm の新しい Realm 任意の 。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Integer value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.INTEGER 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        整数の新しい RealmAny
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Long value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.INTEGER 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        Long の新しい Realm 任意の 。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Boolean value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.BOOLEAN 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        ブール値の新しい RealmAny。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Float value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.FLOAT 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        浮動小数点数の新しい Realm 任意の 。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Double value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.DOUBLE 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        doubleの新しい RealmAny
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       String value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.STRING 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        stringの新しい RealmAny。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       byte[] value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.BINARY 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        byte[] の新しい RealmAny。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Date value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.DATE 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        日付の新しい Realm 任意の 。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       ObjectId value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.OBJECT_ID 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        ObjectId の新しい RealmAny。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Decimal128 value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.DECIMAL128 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        Decimal128 の新しい RealmAny。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       UUID value)
        指定された値を持つ新しい RealmAny を作成します。 値が null でない場合、型はRealmAny.Type.UUID 、それ以外の場合はRealmAny.Type.NULLになります。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        UUID の新しい RealmAny
      • nullValue

        public static RealmAny nullValue()
        null 値の新しい RealmAny を作成します。
        次の値を返します。
        null 値の新しい RealmMany インスタンス。
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       RealmModel value)
        指定された値を持つ新しい RealmAny を作成します。
        パラメーター:
        value - RealmAny 値。
        次の値を返します。
        RealmModel の新しい RealmAny。
      • isNull

        公開ブール値 isNull()
        内部値が null の場合は true を返し、それ以外の場合は false を返します。
        次の値を返します。
        内部値が null の場合は true、それ以外の場合は false。
      • asByte

        public Byte asByte()
        1 の場合はこの値を バイトとして取得し、そうでない場合は例外をスローします。
        次の値を返します。
        a Byte.
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • as短い

        public Triggers短縮()
        1 つの場合、この値を 短縮 として取得します。そうでない場合は例外をスローします。
        次の値を返します。
        短い
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asInteger

        public integer asInteger ()
        この値が 1 の場合は整数として取得されますが、そうでない場合は例外がスローされます。
        次の値を返します。
        整数。
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asLong

        public Long asLong()
        1 つの場合はこの値を Long として取得します。それ以外の場合は例外をスローします。
        次の値を返します。
        a Long.
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asBoolean

        publicブール値asBool()
        この値を 1 つの場合はブール値として取得しますが、そうでない場合は例外をスローします。
        次の値を返します。
        ブール値。
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asFloat

        public浮動小数点数
        は、この値を浮動小数点数として取得します。それ以外の場合は例外をスローします。
        次の値を返します。
        浮動小数。
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asDouble

        public double asDouble()
        この値が 1 の場合はdoubleとして取得します。そうでない場合は例外をスローします。
        次の値を返します。
        double 。
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asString

        public string asString()
        この値を string である場合はそれを取得し、そうでない場合は例外をスローします。
        次の値を返します。
        文字列。
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asBinary

        public byte[] asBinary()
        この値を byte[] として取得します。それ以外の場合は例外をスローします。
        次の値を返します。
        a byte[].
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asDate

        public Date asDate()
        この値を日付である場合は、この値を日付として取得します。そうでない場合は、例外がスローされます。
        次の値を返します。
        日付。
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asObjectId

        public ObjectId asObjectId()
        値が 1 である場合は ObjectId として取得され、そうでない場合は例外がスローされます。
        次の値を返します。
        an ObjectId.
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asUUID

        public UUID asUUID()
        UUID である場合はこの値を UUID として取得し、そうでない場合は例外をスローします。
        次の値を返します。
        UUID
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asDecimal128

        public Decimal128 asDecimal128()
        この値を Decimal128 として取得します。そうでない場合は例外をスローします。
        次の値を返します。
        Decimal128
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • asRealmModel

        public <T extends RealmModel> T asRealmModel​(Class<T> clazz)
        この値を RealmModel として取得します。そうでない場合は例外をスローします。
        型パラメータ:
        T - 内部値をキャストする RealmModel 型。
        次の値を返します。
        T 型の RealmModel 。
        次の例外がスローされます。
        ClassCastException - この値が期待されるタイプでない場合。
      • ハッシュコード

        public final int hashCode()
        RealmAnyのハッシュ コードは、正確にその値のハッシュ コードです。
        上書き:
        hashCode クラス内 Object
        次の値を返します。
        ターゲットの 値が同じ場合は true
        次の例外がスローされます。
        NullPointerException - 内部値が null の場合
      • equals

        public final boolean equals​(@Nullable
                                    Object other)
        2 つのRealmAnyは、内容が等しい場合にのみ.equalsになります。
        上書き:
        equals クラス内 Object
        パラメーター:
        other - 比較ターゲット
        次の値を返します。
        ターゲットの 値が同じ場合は true