Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ / /

RealmAny 类

在此页面上

  • io.realm
  • 嵌套类摘要
  • 方法摘要
  • 继承方法
  • 方法详细信息
  • asBinary
  • asBoolean
  • asByte
  • asDate
  • asDecimal128
  • asDouble
  • asFloat
  • asInteger
  • asLong
  • asObjectId
  • asRealmModel
  • asShort
  • asString
  • asUUID
  • coercedEquals
  • 等于
  • getType
  • getValueClass
  • hashCode
  • IsNull
  • nullValue
  • toString
  • 的值
java.lang.Object
io.realm.RealmAny

io.realm.RealmAny用于表示多态 Realm 值。

在任何特定时刻,此类的实例都会存储确定类型的确定值。 例如,如果这是一个双精度值,则可以调用 asDouble() 来提取该值。 您可以调用 getType() 来了解当前存储的值类型。 在不存储双精度值的实例上调用 asDouble() 会引发 java.lang.ClassCastException

RealmAny 在所有支持的类型上的行为类似于值类型,但 Realm 对象除外。 这意味着 Realm 不会持久化对 RealmAny 值的任何更改,除非类型为 Realm 对象。 当 RealmAny 持有 Realm 对象时,它只是持有该对象的引用,而不是该对象的副本。 因此,对 Realm 对象的修改会反映在 RealmAny 值中,包括是否删除该对象。 由于 RealmAny 实例不可变,因此需要新实例来更新 RealmAny 属性。

anObject.realmAnyAttribute = RealmAny.valueOf(5);
anObject.realmAnyAttribute = RealmAny.valueOf(10.f);

提取特定类型值的行为需要对存储类型有明确的了解,了解这一点至关重要。 为任何特定类型(与存储的值不是同一类型)调用 getter 方法都会引发异常。处理 RealmAny 多态性的建议是围绕 RealmAny 类型及其内部值类编写一个 switch case。

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 类。 如果生成的类是 io.realm.RealmModel 的实现,则可以调用asRealmModel () 将 RealmAny 值转换为 Realm 对象引用。

RealmAny 值也可以进行排序。 不同 RealmAny 类型之间使用的排序顺序(从低到高)为:

  1. 布尔

  2. 字节/短整型/整数/长整型/浮点型/双精度型/十进制 128

  3. 字节[]/字符串

  4. Date

  5. ObjectId

  6. UUID

  7. RealmObject

这会对RealmQuery.sort(String)RealmQuery.minRealmAny(String)RealmQuery.maxRealmAny(String) 工作。 特别是 min()max()不仅会考虑数字字段,还会使用排序顺序来确定“最大”或“最小”值。

修饰符和类型
类和描述
public static final
修饰符和类型
方法和说明
公共字节

如果该值是 1,则以字节[] 形式获取该值,否则抛出异常。

如果该值是 1,则获取布尔值形式,否则抛出异常。

公共 字节

如果该值是 1,则获取 Byte 形式的值,否则抛出异常。

公共 日期

如果此值是 1,则获取 Date 形式的值,否则抛出异常。

公共Decimal128

如果该值是 1,则获取 Decimal128 形式的值,否则抛出异常。

如果该值是 1,则获取 Double 形式的值,否则抛出异常。

公共 浮点

如果该值是 1,则获取 Float 形式的值,否则抛出异常。

如果该值是 1,则以整数形式获取该值,否则抛出异常。

如果该值是 1,则获取 Long 值,否则抛出异常。

公共ObjectId

如果此值是 1,则将其作为 ObjectId 获取,否则将引发异常。

公共T

如果此值是 1,则将其作为 RealmModel 获取,否则会引发异常。

公共 空头

如果此值是 1,则将其作为 Short 获取,否则会引发异常。

公共string

如果该值是 1,则以字符串形式获取该值,否则抛出异常。

公共 UUID

如果此值是 1,则将其作为 UUID 获取,否则将引发异常。

public final boolean
public final boolean
Object other
)

两个RealmAny.equals ,当且仅当它们的内容相等。

获取此 RealmAny 对象的内部类型。

公共

返回表示由此 RealmAny 值包装的内部值的 Java 类。

public final int

RealmAny的哈希码正是其值的哈希码。

公共布尔值

如果内部值为 null,则返回 true,否则返回 false。

public static RealmAny

创建空值的新 RealmAny。

公共string
public static RealmAny
Decimal128 value
)

使用指定值创建新的 RealmAny。

public static RealmAny
ObjectId value
)

使用指定值创建新的 RealmAny。

public static RealmAny
Date value
)

使用指定值创建新的 RealmAny。

public static RealmAny
byte[] value
)

使用指定值创建新的 RealmAny。

public static RealmAny
String value
)

使用指定值创建新的 RealmAny。

public static RealmAny
Double value
)

使用指定值创建新的 RealmAny。

public static RealmAny
Float value
)

使用指定值创建新的 RealmAny。

public static RealmAny

使用指定值创建新的 RealmAny。

public static RealmAny
Long value
)

使用指定值创建新的 RealmAny。

public static RealmAny

使用指定值创建新的 RealmAny。

public static RealmAny
Short value
)

使用指定值创建新的 RealmAny。

public static RealmAny
Byte value
)

使用指定值创建新的 RealmAny。

  • 从类 java.lang.Object 继承的方法 :getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwaitwaitfinalize

public byte asBinary ()

如果该值是 1,则以字节[] 形式获取该值,否则抛出异常。

返回:

一个字节[]。

抛出异常

public Boolean asBoolean ()

如果该值是 1,则获取布尔值形式,否则抛出异常。

返回:

一个布尔值。

抛出异常

public Byte asByte ()

如果该值是 1,则获取 Byte 形式的值,否则抛出异常。

返回:

一个字节。

抛出异常

public Date asDate ()

如果此值是 1,则获取 Date 形式的值,否则抛出异常。

返回:

日期。

抛出异常

public Decimal128 asDecimal128 ()

如果该值是 1,则获取 Decimal128 形式的值,否则抛出异常。

返回:

a Decimal128。

抛出异常

public Double asDouble ()

如果该值是 1,则获取 Double 形式的值,否则抛出异常。

返回:

一个 Double。

抛出异常

public Float asFloat ()

如果该值是 1,则获取 Float 形式的值,否则抛出异常。

返回:

一个 Float。

抛出异常

public Integer asInteger ()

如果该值是 1,则以整数形式获取该值,否则抛出异常。

返回:

一个整数。

抛出异常

public Long asLong ()

如果该值是 1,则获取 Long 值,否则抛出异常。

返回:

长整型。

抛出异常

public ObjectId asObjectId ()

如果此值是 1,则将其作为 ObjectId 获取,否则将引发异常。

返回:

ObjectId。

抛出异常

public T asRealmModel <T >(
)

如果此值是 1,则将其作为 RealmModel 获取,否则会引发异常。

类型参数

  • T - 内部值要转换到的 RealmModel 类型。

返回:

T 类型的 RealmModel。

抛出异常

public Short asShort ()

如果此值是 1,则将其作为 Short 获取,否则会引发异常。

返回:

短视频。

抛出异常

public String asString ()

如果该值是 1,则以字符串形式获取该值,否则抛出异常。

返回:

一个字符串,

抛出异常

public UUID asUUID ()

如果此值是 1,则将其作为 UUID 获取,否则将引发异常。

返回:

UUID。

抛出异常

public final boolean coercedEquals (
RealmAny other
)
public final boolean equals (
Object other
)

两个RealmAny.equals ,当且仅当它们的内容相等。

参数

  • other - 比较目标

返回:

如果目标具有相同的值,则为 true

覆盖

equals Object 类中

获取此 RealmAny 对象的内部类型。

返回:

内部 RealmAny.Type

返回表示由此 RealmAny 值包装的内部值的 Java 类。

返回:

表示由此 RealmAny 值包装的内部值的类。

public final int hashCode ()

RealmAny的哈希码正是其值的哈希码。

返回:

如果目标具有相同的值,则为 true

抛出异常

覆盖

hashCode Object 类中

public boolean isNull ()

如果内部值为 null,则返回 true,否则返回 false。

返回:

如果内部值为 null,则为 true,否则为 false。

public static RealmAny nullValue ()

创建空值的新 RealmAny。

返回:

null 值的新 RealmAny 实例。

public String toString ()

覆盖

toString Object 类中

public static RealmAny valueOf (
Decimal128 value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.DECIMAL128 ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

Decimal128 中的新 RealmAny。

public static RealmAny valueOf (
ObjectId value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.OBJECT_ID ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

ObjectId 的新 RealmAny。

public static RealmAny valueOf (
Date value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.DATE ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

新的 RealmAny 日期。

public static RealmAny valueOf (
byte[] value
)

使用指定值创建新的 RealmAny。 如果值不为 null,则类型将为RealmAny.Type.BINARY ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

字节 [] 的新 RealmAny。

public static RealmAny valueOf (
String value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.STRING ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

字符串的新 RealmAny。

public static RealmAny valueOf (
Double value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.DOUBLE ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

一个新的 RealmAny 或 Double。

public static RealmAny valueOf (
Float value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.FLOAT ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

一个新的 RealmAny 或 Float。

public static RealmAny valueOf (
Boolean value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.BOOLEAN ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

布尔值的新 RealmAny。

public static RealmAny valueOf (
Long value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.INTEGER ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

一个新的 RealmAny 或一个 Long。

public static RealmAny valueOf (
Integer value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.INTEGER ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

一个新的 RealmAny 整数。

public static RealmAny valueOf (
Short value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.INTEGER ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

一个新的 RealmAny 或 Short。

public static RealmAny valueOf (
Byte value
)

使用指定值创建新的 RealmAny。 如果值不为空,则类型将为RealmAny.Type.INTEGER ,否则为RealmAny.Type.NULL

参数

  • value - RealmAny 值。

返回:

包含 Byte 值的新 RealmAny。

后退

Realm.Transaction.OnSuccess