패키지 io.realm

RealmAny 클래스


  • public class RealmAny
    extends Object
    RealmAny 다형성 Realm 값을 나타내는 데 사용됩니다.

    이 클래스의 인스턴스는 언제든지 특정 시점에 한정 유형의 한정 값을 저장합니다. If, for instance, that is an double value, you may call asDouble() to extract that value. getType()을 호출하여 현재 저장된 값의 유형을 확인할 수 있습니다. double을 저장하지 않는 인스턴스에서 asDouble()을 호출하면 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 의 구현인 경우 asRealmModel()을 호출하여 RealmAny 값을 Realm 객체 참고로 캐스팅할 수 있습니다.

    RealmAny 값도 정렬할 수 있습니다. 다양한 RealmAny 유형 간에 사용되는 정렬 순서는 가장 낮은 것부터 가장 높은 것까지입니다.

    1. 부울
    2. 바이트/단순/정수/긴/부동/이중/십진수128
    3. byte[]/String
    4. 날짜
    5. ObjectId
    6. UUID
    7. RealmObject
    This has implications on how RealmQuery.sort(String), RealmQuery.minRealmAny(String) and RealmQuery.maxRealmAny(String) work. 특히 min()max() 은 숫자 필드를 고려할 뿐만 아니라 정렬 순서를 사용하여 "가장 큰" 값 또는 "가장 낮은" 값을 결정합니다.
    • 중첩된 클래스 요약

      중첩된 클래스 
      수정자 및 유형 클래스 설명
      static class  RealmAny.Type
      RealmAny에서 지원하는 모든 유형을 설명하는 열거형입니다.
    • 메서드 요약

      모든 메서드 정적 메서드 인스턴스 메서드 구체적인 방법 
      수정자 및 유형 메서드 설명
      byte[] asBinary()
      이 값을 byte[]로 가져오면 1이면 예외를 발생시킵니다.
      Boolean asBoolean()
      이 값을 부울(Boolean)로 가져오면 1이면 예외를 발생시킵니다.
      Byte asByte()
      이 값을 바이트로 가져오면 바이트로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
      Date asDate()
      이 값을 날짜로 가져오면 1이면 예외가 발생합니다.
      Decimal128 asDecimal128()
      이 값을 Decimal128이면 1로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
      Double asDouble()
      이 값을 Double인 경우 1로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
      Float asFloat()
      이 값을 Float로 가져오면 1이면 예외를 발생시킵니다.
      Integer asInteger()
      이 값을 1이면 Integer로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
      Long asLong()
      이 값을 Long(1)이면 Long으로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
      ObjectId asObjectId()
      이 값을 ObjectId(일 경우)로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
      <T extends RealmModel>
      T
      asRealmModel​(Class<T> clazz)
      이 값이 1인 경우 RealmModel로 가져오고, 그렇지 않으면 예외가 발생합니다.
      Short asShort()
      이 값을 1이면 짧은 으로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
      String asString()
      이 값을 문자열로 가져오면 1이면 예외를 발생시킵니다.
      UUID asUUID()
      이 값을 UUID로 가져오면 1이 아니면 예외가 발생합니다.
      boolean coercedEquals​(RealmAny other)  
      boolean equals​(Object other)
      두 개의 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 값입니다.
        반환합니다:
        짧은 RealmAny의 새로운.
      • 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의 새로운 RealmAny.
      • 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 값입니다.
        반환합니다:
        Float의 새로운 RealmAny.
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Double value)
        지정된 값으로 새 RealmAny를 만듭니다. 값이 null이 아닌 경우 유형은 RealmAny.Type.DOUBLE, 그렇지 않으면 RealmAny.Type.NULL 가 됩니다.
        매개변수:
        value - RealmAny 값입니다.
        반환합니다:
        더블의 새로운 RealmAny.
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       String value)
        지정된 값으로 새 RealmAny를 만듭니다. 값이 null이 아닌 경우 유형은 RealmAny.Type.STRING, 그렇지 않으면 RealmAny.Type.NULL 가 됩니다.
        매개변수:
        value - RealmAny 값입니다.
        반환합니다:
        문자열의 새로운 RealmAny.
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       byte[] value)
        지정된 값으로 새 RealmAny를 만듭니다. 값이 null이 아닌 경우 유형은 RealmAny.Type.BINARY, 그렇지 않으면 RealmAny.Type.NULL 가 됩니다.
        매개변수:
        value - RealmAny 값입니다.
        반환합니다:
        바이트[]의 새로운 RealmAny입니다.
      • valueOf

        public static RealmAny valueOf​(@Nullable
                                       Date value)
        지정된 값으로 새 RealmAny를 만듭니다. 값이 null이 아닌 경우 유형은 RealmAny.Type.DATE, 그렇지 않으면 RealmAny.Type.NULL 가 됩니다.
        매개변수:
        value - RealmAny 값입니다.
        반환합니다:
        날짜의 새로운 RealmAny.
      • 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 값의 새 RealmAny 인스턴스.
      • 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()
        이 값을 바이트로 가져오면 바이트로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
        반환합니다:
        바이트.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asShot

        public 짧은 asShot()
        이 값을 1이면 짧은 으로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
        반환합니다:
        짧은.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asInteger

        public Integer asInteger()
        이 값을 1이면 Integer로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
        반환합니다:
        정수.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asLong

        public Long asLong()
        이 값을 Long(1)이면 Long으로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
        반환합니다:
        Long.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asBoolean

        public Boolean asBoolean()
        이 값을 부울(Boolean)로 가져오면 1이면 예외를 발생시킵니다.
        반환합니다:
        부울.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asFloat

        public Float asFloat()
        이 값을 Float로 가져오면 1이면 예외를 발생시킵니다.
        반환합니다:
        Float.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asDouble

        public Double asDouble()
        이 값을 Double인 경우 1로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
        반환합니다:
        더블.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asString

        public String asString()
        이 값을 문자열로 가져오면 1이면 예외를 발생시킵니다.
        반환합니다:
        문자열입니다.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asBinary

        public byte[] asBinary()
        이 값을 byte[]로 가져오면 1이면 예외를 발생시킵니다.
        반환합니다:
        바이트[].
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asDate

        공개 날짜 asDate()
        이 값을 날짜로 가져오면 1이면 예외가 발생합니다.
        반환합니다:
        날짜.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asObjectId

        public ObjectId asObjectId()
        이 값을 ObjectId(일 경우)로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
        반환합니다:
        ObjectId.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asUUID

        공개 UUID asUUID()
        이 값을 UUID로 가져오면 1이 아니면 예외가 발생합니다.
        반환합니다:
        UUID.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asDecimal128

        public Decimal128 asDecimal128()
        이 값을 Decimal128이면 1로 가져오고, 그렇지 않으면 예외를 발생시킵니다.
        반환합니다:
        Decimal128.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • asRealmModel

        public <T extends RealmModel> T asRealmModel​(Class<T> clazz)
        이 값이 1인 경우 RealmModel로 가져오고, 그렇지 않으면 예외가 발생합니다.
        유형 매개변수:
        T - 내부 값을 캐스팅할 RealmModel 유형입니다.
        반환합니다:
        T 유형의 RealmModel입니다.
        예외 처리:
        ClassCastException - 이 값이 예상한 유형이 아닌 경우.
      • 해시 코드

        public final int hashCode()
        RealmAny 의 해시 코드는 정확히 해당 값의 해시 코드입니다.
        재정의:
        hashCode 수업 중 Object
        반환합니다:
        대상이 동일한 값을 가지면 true
        예외 처리:
        NullPointerException - 내부 값이 null인 경우
      • 같음

        public final boolean equals​(@Nullable
                                    Object other)
        두 개의 RealmAny은 내용이 동일한 경우에만 .equals 입니다.
        재정의:
        equals 수업 중 Object
        매개변수:
        other - 비교 대상
        반환합니다:
        대상이 동일한 값을 가지면 true