安装包 io.realm

类 DynamicRealmObject

  • 所有已实现的接口:
    io.realm.internal.ManageableObject, io.realm.internal.RealmObjectProxy , RealmModel

    public class DynamicRealmObject
    extends RealmObject
    implements io.realm.internal.RealmObjectProxy
    包装普通 RealmObject 以允许动态访问的类,而不是类型化接口。 使用 DynamicRealmObject 比使用常规 RealmObject 类慢。
    • 构造函数详细信息

      • DynamicRealmObject

        公共 DynamicRealmObject​( RealmModel obj)
        根据现有对象创建动态 Realm 对象。
        参数:
        obj - 要转换为动态对象的 Realm 对象。 只能使用由Realm托管的对象。
        抛出异常:
        IllegalArgumentException - 如果对象不受 Realm 托管或者已经是DynamicRealmObject
    • 方法详细信息

      • 获取

        public <E> E get​(String fieldName)
        返回给定字段的值。
        参数:
        fieldName - 字段名称。
        返回:
        字段值。
        抛出异常:
        ClassCastException - 如果字段不包含已定义返回类型的字段。
      • getBoolean

        public boolean getBoolean​( String fieldName)
        返回给定字段的boolean值。

        如果字段可为 null,则使用isNull(String)来检查null ,而不是使用此方法。

        参数:
        fieldName - 字段的名称。
        返回:
        布尔值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含布尔值。
        RealmException - 如果返回值为null
      • getInt

        public int getInt​( String fieldName)
        返回给定字段的int值。

        如果字段可为 null,则使用isNull(String)来检查null ,而不是使用此方法。

        参数:
        fieldName - 字段的名称。
        返回:
        int 值。 超过Integer.MAX_VALUE的整数值将换行。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含整数。
        RealmException - 如果返回值为null
      • getShort

        public long getShort​( String fieldName)
        返回给定字段的short值。

        如果字段可为 null,则使用isNull(String)来检查null ,而不是使用此方法。

        参数:
        fieldName - 字段的名称。
        返回:
        空头值。 超过Short.MAX_VALUE的整数值将换行。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含整数。
        RealmException - 如果返回值为null
      • getLong

        public long getLong​( String fieldName)
        返回给定字段的long值。

        如果字段可为 null,则使用isNull(String)来检查null ,而不是使用此方法。

        参数:
        fieldName - 字段的名称。
        返回:
        长整型值。 超过Long.MAX_VALUE的整数值将换行。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含整数。
        RealmException - 如果返回值为null
      • getByte

        公共字节 getByte​( String fieldName)
        返回给定字段的byte值。

        如果字段可为 null,则使用isNull(String)来检查null ,而不是使用此方法。

        参数:
        fieldName - 字段的名称。
        返回:
        字节值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含整数。
        RealmException - 如果返回值为null
      • getFloat

        public float getFloat​( String fieldName)
        返回给定字段的float值。

        如果字段可为 null,则使用isNull(String)来检查null ,而不是使用此方法。

        参数:
        fieldName - 字段的名称。
        返回:
        浮点值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含浮点数。
        RealmException - 如果返回值为null
      • getDouble

        public double getDouble​( String fieldName)
        返回给定字段的double值。

        如果字段可为 null,则使用isNull(String)来检查null ,而不是使用此方法。

        参数:
        fieldName - 字段的名称。
        返回:
        双精度值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含双精度值。
        RealmException - 如果返回值为null
      • getBlob

        public byte[] getBlob​( String fieldName)
        返回给定字段的byte[]值。
        参数:
        fieldName - 字段的名称。
        返回:
        字节 [] 值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含二进制数据。
      • getString

        public String getString​( String fieldName)
        返回给定字段的String值。
        参数:
        fieldName - 字段的名称。
        返回:
        字符串值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含字符串。
      • getDate

        公共日期getDate​( String fieldName)
        返回给定字段的Date值。
        参数:
        fieldName - 字段的名称。
        返回:
        日期值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含日期。
      • getDecimal128

        public Decimal128 getDecimal128​( String fieldName)
        返回给定字段的Decimal128值。
        参数:
        fieldName - 字段的名称。
        返回:
        Decimal128 值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含 Decimal128。
      • getObjectId

        public ObjectId getObjectId​( String fieldName)
        返回给定字段的ObjectId值。
        参数:
        fieldName - 字段的名称。
        返回:
        ObjectId 值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含 ObjectId。
      • getRealmAny

        public RealmAny getRealmAny​( String fieldName)
        返回给定字段的RealmAny值。
        参数:
        fieldName - 字段的名称。
        返回:
        RealmAny 值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含 RealmAny。
      • getUUID

        公共UUID getUUID​( String fieldName)
        返回给定字段的UUID值。
        参数:
        fieldName - 字段的名称。
        返回:
        UUID 值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含 UUID。
      • getList

        public <E> RealmList<E> getList​(String fieldName,
                                        Class<E> primitiveType)
        返回仅包含原始值的RealmList

        如果列表包含对其他 Realm 对象的引用,请改用getList(String)

        参数:
        fieldName - 字段的名称。
        primitiveType - 列表中元素的类型。 仅支持基元类型。
        返回:
        此字段的RealmList数据。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含原始对象列表。
      • getDictionary

        public <E> RealmDictionary<E> getDictionary​(String fieldName,
                                                    Class<E> primitiveType)
        返回仅包含原始值的RealmDictionary

        如果字典包含对其他 Realm 对象的引用,请改用getDictionary(String)

        参数:
        fieldName - 字段的名称。
        primitiveType - 字典中元素的类型。 仅支持基元类型。
        返回:
        此字段的RealmDictionary数据。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含原始对象的字典。
      • getRealmSet

        public <E> RealmSet<E> getRealmSet​(String fieldName,
                                           Class<E> primitiveType)
        返回仅包含原始值的RealmSet

        如果该集包含对其他 Realm 对象的引用,请改用getRealmSet(String)

        参数:
        fieldName - 字段的名称。
        primitiveType - 集合中元素的类型。 仅支持基元类型。
        返回:
        此字段的RealmSet数据。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或不包含一组基元对象。
      • IsNull

        public boolean isNull​( String fieldName)
        检查给定字段的值是否为null
        参数:
        fieldName - 字段的名称。
        返回:
        true 如果字段值为 null,则返回false
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在。
      • hasField

        public boolean hasField​( String fieldName)
        检查对象是否具有给定字段。
        参数:
        fieldName - 要检查的字段名称。
        返回:
        true 如果该对象具有给定名称的字段,则为false
      • getFieldNames

        public String [] getFieldNames()
        返回此对象的字段名称列表。
        返回:
        此对象上的字段名称列表,如果该对象没有任何字段,则为空列表。
      • public void set​(String fieldName,
                        Object value)
        设置给定字段的值。此方法会自动尝试将String给出的数字和布尔值转换为适当的类型。 "10"10例如,如果字段类型为int ,则 将转换为 。

        使用类型化 setter 比使用此方法更快。

        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或输入值无法转换为适当的输入类型。
        NumberFormatException - 如果无法正确转换基于字符串的数字。
        RealmException - 如果该字段是PrimaryKey字段。
      • setBoolean

        public void setBoolean​(String fieldName,
                               boolean value)
        设置给定字段的boolean值。
        参数:
        fieldName - 要更新的字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是布尔字段。
      • setShort

        public void setShort​(String fieldName,
                             short value)
        设置给定字段的short值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是整数字段。
        RealmException - 如果该字段是PrimaryKey字段。
      • setInt

        public void setInt​(String fieldName,
                           int value)
        设置给定字段的int值。
        参数:
        fieldName - 要更新的字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是整数字段。
        RealmException - 如果该字段是PrimaryKey字段。
      • setLong

        public void setLong​(String fieldName,
                            long value)
        设置给定字段的long值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是整数字段。
        RealmException - 如果该字段是PrimaryKey字段。
      • setByte

        public void setByte​(String fieldName,
                            byte value)
        设置给定字段的byte值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是整数字段。
        RealmException - 如果该字段是PrimaryKey字段。
      • setFloat

        public void setFloat​(String fieldName,
                             float value)
        设置给定字段的float值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是浮点字段。
      • setDouble

        public void setDouble​(String fieldName,
                              double value)
        设置给定字段的double值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是双精度字段。
      • setBlob

        public void setBlob​(String fieldName,
                            @Nullable
                            byte[] value)
        设置给定字段的二进制值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是二进制字段。
      • setDate

        public void setDate​(String fieldName,
                            @Nullable
                            Date value)
        设置给定字段的Date值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是日期字段。
      • setDecimal128

        public void setDecimal128​(String fieldName,
                                  @Nullable
                                  Decimal128 value)
        设置给定字段的Decimal128值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是 Decimal128 字段。
      • setObjectId

        public void setObjectId​(String fieldName,
                                @Nullable
                                ObjectId value)
        设置给定字段的ObjectId值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是 ObjectId 字段。
      • setRealmAny

        public void setRealmAny​(String fieldName,
                                @Nullable
                                RealmAny value)
        设置给定字段的RealmAny值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是 RealmAny 字段。
      • setUUID

        public void setUUID​(String fieldName,
                            @Nullable
                            UUID value)
        设置给定字段的UUID值。
        参数:
        fieldName - 字段名称。
        value - 要插入的值。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在或字段不是 UUID 字段。
      • setObject

        public void setObject​(String fieldName,
                              @Nullable
                              DynamicRealmObject value)
        在给定字段上设置对另一个对象的引用。
        参数:
        fieldName - 字段名称。
        value — 要链接到的对象。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在,则它未链接到其他 Realm 对象、DynamicRealmObject 的类型不匹配或属于不同的 Realm。
      • setList

        public <E> void setList​(String fieldName,
                                RealmList<E> list)
        在给定字段上设置对RealmList的引用。

        这会将列表中的所有元素复制到 Realm 中,但对列表的任何进一步更改都不会反映在 Realm 中。 使用getList(String)获取对托管列表的引用。

        参数:
        fieldName - 字段名称。
        list — 对象列表。 必须是基元类型或DynamicRealmObject
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在,则它不是字段,对象与预期类型不匹配,或者任何 Realm 对象属于不同的 Realm。
      • setDictionary

        public <E> void setDictionary​(String fieldName,
                                      RealmDictionary<E> dictionary)
        在给定字段上设置对RealmDictionary的引用。

        这会将字典中的所有元素复制到 Realm 中,但对字典的任何进一步更改都不会反映在 Realm 中。 使用getDictionary(String)获取对托管字典的引用。

        参数:
        fieldName - 字段名称。
        dictionary — 对象字典。 必须是基元类型或DynamicRealmObject
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在,则它不是字段,字段中的对象与预期类型不匹配,或者字段中的任何 Realm 对象属于不同的 Realm。
      • setRealmSet

        public <E> void setRealmSet​(String fieldName,
                                    RealmSet<E> set)
        在给定字段上设置对RealmSet的引用。

        这会将集合中的所有元素复制到 Realm 中,但对该集合的任何进一步更改都不会反映在 Realm 中。 使用getRealmSet(String)获取对托管集的引用。

        参数:
        fieldName - 字段名称。
        set — 对象集。 必须是基元类型或DynamicRealmObject
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在,则它不是集合字段,集合中的对象与预期类型不匹配,或者集合中的任何 Realm 对象属于不同的 Realm。
      • setNull

        public void setNull​(String fieldName)
        将给定字段的值设置为null
        参数:
        fieldName - 字段名称。
        抛出异常:
        IllegalArgumentException - 如果字段名称不存在,或者字段不可为空。
        RealmException - 如果该字段是PrimaryKey字段。
      • getType

        public String getType()
        返回对象的类型。 这通常对应于扩展RealmObject的类的名称。
        返回:
        this Realm 对象类型。
      • getFieldType

        公共RealmFieldType getFieldType​( String fieldName)
        返回底层存储引擎用于表示该字段的类型。
        返回:
        Realm 用来表示该字段的基础类型。
      • hashCode

        public int hashCode()
        返回DynamicRealmObject对象的哈希代码值。

        根据Object.hashCode()的通用约定, equals(java.lang.Object)为其返回true的任何两个对象必须返回相同的哈希代码值。

        请注意, RealmObject是一个活动对象,它可能会因其他线程的变更而进行更新。 这意味着该对象的哈希码值并不稳定,该值既不应该作为 HashMap 中的键,也不应该保存在 HashSet 中。

        覆盖:
        hashCode 课堂上 Object
        返回:
        对象的哈希代码值。
        另请参阅:
        equals(java.lang.Object)
      • LinkingObjects

        public RealmResults<DynamicRealmObject> linkingObjects​(String srcClassName,
                                                               String srcFieldName)
        返回RealmResults ,其中包含与srcFieldName字段中的此对象有关系的所有srcClassName类对象。

        为每个引用添加一个条目,例如,如果同一引用多次出现在列表中,则 src 对象将在此处多次显示。

        参数:
        srcClassName - 返回对象所属类的名称。
        srcFieldName - 源类中保存此对象引用的字段名称。 字段类型必须为io.realm.RealmFieldType.OBJECTio.realm.RealmFieldType.LIST
        返回:
        结果。
        抛出异常:
        IllegalArgumentException - 如果srcClassNamenull或不存在,则srcFieldNamenull或不存在,则不支持源字段的类型。
      • realm$injectObjectContext

        public void realm$injectObjectContext()
        指定者:
        realm$injectObjectContext 在接口中 io.realm.internal.RealmObjectProxy
      • realmGet$proxyState

        公共ProxyState realmGet$proxyState()
        指定者:
        realmGet$proxyState 在接口中 io.realm.internal.RealmObjectProxy