安装包 io.realm
MutableRealmInteger 类
- java.lang.Object
-
- io.realm.MutableRealmInteger
-
- 所有已实现的接口:
io.realm.internal.ManageableObject
,Comparable<MutableRealmInteger>
public abstract class MutableRealmInteger extends Object implements Comparable<MutableRealmInteger>, io.realm.internal.ManageableObject
MutableRealmInteger
是一个可变的、类似Long
的数值量。 它的行为几乎与对Long
的引用完全相同。 更具体地说:MutableRealmInteger
的值可能为null
。equals(java.lang.Object)
操作符会比较包含的Long
值。null
值的MutableRealmInteger
为.equals
compareTo(io.realm.MutableRealmInteger)
操作符会比较包含的Long
值。 它考虑null
<任何非null
值。- 当应用于值为
null
的MutableRealmInteger
时,increment(long)
和decrement(long)
操作符会抛出IllegalStateException
}。
MutableRealmInteger
作为托管RealmModel
对象的成员,这是最有趣的。 托管时,increment(long)
和decrement(long)
操作符实现无冲突复制数据类型:来自多个分布式客户端的同时递增和递减将被正确聚合。 例如,如果表示用户“Fred”的对象的counter
字段的值当前为 0,那么在两个不同设备上同时执行以下代码,即使仅通过慢速、不可靠的网络连接,也始终会导致counter
的值收敛,最终收敛到值 2。MutableRealmInteger counter = realm.where(Users.class) .equalTo("name", Fred) .findFirst() .counter.increment(1);
set(Long)
操作符时必须格外小心。 它将消除之前对increment(long)
或decrement(long)
的任何调用的影响。 尽管MutableRealmInteger
的值在跨设备时始终会收敛,但其收敛的具体值将取决于操作发生的实际顺序。 因此,不建议将set(Long)
与increment(long)
和decrement(long)
混合使用,除非可以接受模糊计数。MutableRealmInteger
s 不能为主键。它们的实现不是线程安全的。 与所有托管 Realm 对象一样,托管MutableRealmInteger
可能无法跨线程移动。 非托管MutableRealmInteger
可以跨线程移动,但需要安全发布。模型类中的
MutableRealmInteger
必须始终声明为final
。 实例:public final MutableRealmInteger counter = MutableRealmInteger.ofNull();
MutableRealmInteger
初始化为null
可能会在非常有限的情况下起作用,但建议开发者不要这样做:public final MutableRealmInteger counter = null; // DO NOT DO THIS!
MutableRealmInteger
为@Required
时,最好(但不是必需)使用非空值对其进行初始化。@Required public final MutableRealmInteger counter = MutableRealmInteger.valueOf(0L);
对托管
MutableRealmInteger
的引用受到适用于从中获取该引用的模型对象的所有约束的约束:它只能在事务中进行更改,并且如果支持它的 Realm 已关闭,则该引用将变为无效。 使用isManaged()
和isValid()
操作符可确定MutableRealmInteger
是否处于一致状态。 请特别注意,对托管MutableRealmInteger
的引用保留对其所属模型对象的引用。 例如在以下代码中:MutableRealmInteger counter = realm.where(Users.class).findFirst().counter;
counter
包含对其从中获取User
模型对象的引用。 直到对两者的所有引用都无法访问之前,才能对两者进行 GC。
-
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体方法 修饰符和类型 方法 说明 int
compareTo(MutableRealmInteger o)
MutableRealmInteger
严格按其值进行比较。abstract void
decrement(long dec)
递减MutableRealmInteger
,即减去参数的值。boolean
equals(Object o)
当且仅当两个MutableRealmInteger
的longValues
相等时,它们才是.equals
。abstract Long
get()
获取MutableRealmInteger
值。int
hashCode()
MutableRealmInteger
的哈希码正是其值的哈希码。abstract void
increment(long inc)
递增MutableRealmInteger
,添加参数的值。boolean
isNull()
static MutableRealmInteger
ofNull()
创建一个新的非托管MutableRealmInteger
,其值为null
。void
set(long newValue)
设置MutableRealmInteger
值。abstract void
set(Long newValue)
设置MutableRealmInteger
值。static MutableRealmInteger
valueOf(long value)
使用指定的初始值创建一个新的非托管MutableRealmInteger
。static MutableRealmInteger
valueOf(Long value)
使用指定的初始值创建一个新的非托管MutableRealmInteger
。static MutableRealmInteger
valueOf(String value)
使用指定的初始值创建一个新的非托管MutableRealmInteger
。
-
-
-
方法详细信息
-
的值
public static MutableRealmInteger valueOf(Long value)
使用指定的初始值创建一个新的非托管MutableRealmInteger
。- 参数:
value
- 初始值。
-
ofNull
public static MutableRealmInteger ofNull()
创建一个新的非托管MutableRealmInteger
,其值为null
。
-
的值
public static MutableRealmInteger valueOf(long value)
使用指定的初始值创建一个新的非托管MutableRealmInteger
。- 参数:
value
- 初始值。
-
的值
public static MutableRealmInteger valueOf(String value)
使用指定的初始值创建一个新的非托管MutableRealmInteger
。- 参数:
value
- 初始值:由Long.parseLong(java.lang.String, int)
解析。
-
集
public abstract void set(@Nullable Long newValue)
设置MutableRealmInteger
值。 调用set
会强制将MutableRealmInteger
设置为提供的值。 执行此操作会消除在调用set
之前感知的对increment(long)
和decrement(long)
的任何调用的影响。- 参数:
newValue
— 新值。
-
集
public final void set(long newValue)
设置MutableRealmInteger
值。 调用set(java.lang.Long)
会强制将MutableRealmInteger
设置为提供的值。 执行此操作会消除在调用increment(long)
之前感知的对decrement(long)
set(java.lang.Long)
和 的任何调用的影响。- 参数:
newValue
— 新值。
-
增量
public abstract void increment(long inc)
递增MutableRealmInteger
,添加参数的值。 所有设备的递增/递减都会反映在新值中,并且保证收敛。- 参数:
inc
- 要添加到MutableRealmInteger
的数量。
-
递减
public abstract void decrement(long dec)
递减MutableRealmInteger
,即减去参数的值。 所有设备的递增/递减都会反映在新值中,并且保证收敛。- 参数:
dec
- 要从MutableRealmInteger
中减去的数量。
-
IsNull
public final boolean isNull()
- 返回:
- 当且仅当
get()
返回null
时才为 true。
-
compareTo
public final int compareTo(MutableRealmInteger o)
MutableRealmInteger
严格按其值进行比较。 Null 是MutableRealmInteger
和null
的合法值 < 任何非null
值- 指定者:
compareTo
在接口中Comparable<MutableRealmInteger>
- 参数:
o
- 比较目标- 返回:
- -1、0 或 1,具体取决于此对象的值是 <、= 还是 > 目标的值。
-
hashCode
public final int hashCode()
MutableRealmInteger
的哈希码正是其值的哈希码。
-
-