类 DynamicRealmObject
- java.lang.Object
-
- io.realm.RealmObject
-
- 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 类慢。
-
-
嵌套类摘要
-
从接口 io.realm.internal.RealmObjectProxy 继承的嵌套类/接口
io.realm.internal.RealmObjectProxy.CacheData<E extends RealmModel>
-
-
构造函数摘要
构造函数 Constructor 说明 DynamicRealmObject(RealmModel obj)
根据现有对象创建动态 Realm 对象。
-
方法摘要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 boolean
equals(Object o)
<E> E
get(String fieldName)
返回给定字段的值。byte[]
getBlob(String fieldName)
返回给定字段的byte[]
值。boolean
getBoolean(String fieldName)
返回给定字段的boolean
值。byte
getByte(String fieldName)
返回给定字段的byte
值。Date
getDate(String fieldName)
返回给定字段的Date
值。Decimal128
getDecimal128(String fieldName)
返回给定字段的Decimal128
值。RealmDictionary<DynamicRealmObject>
getDictionary(String fieldName)
RealmDictionary
返回从给定字段链接的DynamicRealmObject
的 。<E> RealmDictionary<E>
getDictionary(String fieldName, Class<E> primitiveType)
返回仅包含原始值的RealmDictionary
。double
getDouble(String fieldName)
返回给定字段的double
值。DynamicRealm
getDynamicRealm()
DynamicRealm
返回此 所属的DynamicRealmObject
实例。String[]
getFieldNames()
返回此对象的字段名称列表。RealmFieldType
getFieldType(String fieldName)
返回底层存储引擎用于表示该字段的类型。float
getFloat(String fieldName)
返回给定字段的float
值。int
getInt(String fieldName)
返回给定字段的int
值。RealmList<DynamicRealmObject>
getList(String fieldName)
RealmList
返回从给定字段链接的DynamicRealmObject
的 。<E> RealmList<E>
getList(String fieldName, Class<E> primitiveType)
返回仅包含原始值的RealmList
。long
getLong(String fieldName)
返回给定字段的long
值。DynamicRealmObject
getObject(String fieldName)
返回从此字段链接到的对象。ObjectId
getObjectId(String fieldName)
返回给定字段的ObjectId
值。RealmAny
getRealmAny(String fieldName)
返回给定字段的RealmAny
值。RealmSet<DynamicRealmObject>
getRealmSet(String fieldName)
RealmSet
返回从给定字段链接的DynamicRealmObject
的 。<E> RealmSet<E>
getRealmSet(String fieldName, Class<E> primitiveType)
返回仅包含原始值的RealmSet
。short
getShort(String fieldName)
返回给定字段的short
值。String
getString(String fieldName)
返回给定字段的String
值。String
getType()
返回对象的类型。UUID
getUUID(String fieldName)
返回给定字段的UUID
值。boolean
hasField(String fieldName)
检查对象是否具有给定字段。int
hashCode()
返回DynamicRealmObject
对象的哈希代码值。boolean
isNull(String fieldName)
检查给定字段的值是否为null
。RealmResults<DynamicRealmObject>
linkingObjects(String srcClassName, String srcFieldName)
void
realm$injectObjectContext()
ProxyState
realmGet$proxyState()
void
set(String fieldName, Object value)
设置给定字段的值。void
setBlob(String fieldName, byte[] value)
设置给定字段的二进制值。void
setBoolean(String fieldName, boolean value)
设置给定字段的boolean
值。void
setByte(String fieldName, byte value)
设置给定字段的byte
值。void
setDate(String fieldName, Date value)
设置给定字段的Date
值。void
setDecimal128(String fieldName, Decimal128 value)
设置给定字段的Decimal128
值。<E> void
setDictionary(String fieldName, RealmDictionary<E> dictionary)
在给定字段上设置对RealmDictionary
的引用。void
setDouble(String fieldName, double value)
设置给定字段的double
值。void
setFloat(String fieldName, float value)
设置给定字段的float
值。void
setInt(String fieldName, int value)
设置给定字段的int
值。<E> void
setList(String fieldName, RealmList<E> list)
在给定字段上设置对RealmList
的引用。void
setLong(String fieldName, long value)
设置给定字段的long
值。void
setNull(String fieldName)
将给定字段的值设置为null
。void
setObject(String fieldName, DynamicRealmObject value)
在给定字段上设置对另一个对象的引用。void
setObjectId(String fieldName, ObjectId value)
设置给定字段的ObjectId
值。void
setRealmAny(String fieldName, RealmAny value)
设置给定字段的RealmAny
值。<E> void
setRealmSet(String fieldName, RealmSet<E> set)
在给定字段上设置对RealmSet
的引用。void
setShort(String fieldName, short value)
设置给定字段的short
值。void
setString(String fieldName, String value)
设置给定字段的String
值。void
setUUID(String fieldName, UUID value)
设置给定字段的UUID
值。String
toString()
-
从类 io.realm 继承的方法。 RealmObject
addChangeListener, addChangeListener, addChangeListener, addChangeListener, asChangesetObservable, asChangesetObservable, asFlowable, asFlowable, deleteFromRealm, deleteFromRealm, freeze, freeze, getRealm, getRealm, isFrozen, isFrozen, isLoaded, isLoaded, isManaged, isManaged, isValid, isValid, load, load, removeAllChangeListeners, removeAllChangeListeners, removeChangeListener, removeChangeListener, removeChangeListener, removeChangeListener
-
-
-
-
构造函数详细信息
-
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。
-
getObject
@Nullable public DynamicRealmObject getObject( String fieldName)
返回从此字段链接到的对象。- 参数:
fieldName
- 字段的名称。- 返回:
- 链接对象的
DynamicRealmObject
表示形式,如果没有链接对象,则为null
。 - 抛出异常:
IllegalArgumentException
- 如果字段名称不存在或不包含指向其他对象的链接。
-
getList
public RealmList<DynamicRealmObject> getList(String fieldName)
- 参数:
fieldName
- 字段的名称。- 返回:
- 此字段的
RealmList
数据。 - 抛出异常:
IllegalArgumentException
- 如果字段名称不存在或不包含对象列表。
-
getList
public <E> RealmList<E> getList(String fieldName, Class<E> primitiveType)
返回仅包含原始值的RealmList
。如果列表包含对其他 Realm 对象的引用,请改用
getList(String)
。- 参数:
fieldName
- 字段的名称。primitiveType
- 列表中元素的类型。 仅支持基元类型。- 返回:
- 此字段的
RealmList
数据。 - 抛出异常:
IllegalArgumentException
- 如果字段名称不存在或不包含原始对象列表。
-
getDictionary
public RealmDictionary<DynamicRealmObject> getDictionary(String fieldName)
- 参数:
fieldName
- 字段的名称。- 返回:
- 此字段的
RealmDictionary
数据。 - 抛出异常:
IllegalArgumentException
- 如果字段名称不存在或不包含对象字典。
-
getDictionary
public <E> RealmDictionary<E> getDictionary(String fieldName, Class<E> primitiveType)
返回仅包含原始值的RealmDictionary
。如果字典包含对其他 Realm 对象的引用,请改用
getDictionary(String)
。- 参数:
fieldName
- 字段的名称。primitiveType
- 字典中元素的类型。 仅支持基元类型。- 返回:
- 此字段的
RealmDictionary
数据。 - 抛出异常:
IllegalArgumentException
- 如果字段名称不存在或不包含原始对象的字典。
-
getRealmSet
public RealmSet<DynamicRealmObject> getRealmSet(String fieldName)
- 参数:
fieldName
- 字段的名称。- 返回:
- 此字段的
RealmSet
数据。 - 抛出异常:
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
- 如果字段名称不存在或字段不是双精度字段。
-
setString
public void setString(String fieldName, @Nullable String value)
设置给定字段的String
值。- 参数:
fieldName
- 字段名称。value
- 要插入的值。- 抛出异常:
IllegalArgumentException
- 如果字段名称不存在或字段不是字符串字段。RealmException
- 如果该字段是PrimaryKey
字段。
-
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.OBJECT
或io.realm.RealmFieldType.LIST
。- 返回:
- 结果。
- 抛出异常:
IllegalArgumentException
- 如果srcClassName
为null
或不存在,则srcFieldName
为null
或不存在,则不支持源字段的类型。
-
getDynamicRealm
公共DynamicRealm getDynamicRealm()
- 返回:
DynamicRealm
该对象所属的实例。- 抛出异常:
IllegalStateException
- 如果此对象已被删除或相应的DynamicRealm
已关闭。
-
realm$injectObjectContext
public void realm$injectObjectContext()
- 指定者:
realm$injectObjectContext
在接口中io.realm.internal.RealmObjectProxy
-
realmGet$proxyState
公共ProxyState realmGet$proxyState()
- 指定者:
realmGet$proxyState
在接口中io.realm.internal.RealmObjectProxy
-
-