MutableRealmInteger 类
io.realm
实现的接口:
MutableRealmInteger
是一个可变、 长整型 -类似数字数量。它的行为几乎与对 Long 的引用完全相同 。更具体地说:
MutableRealmInteger
的值可能为null
。等于 操作符比较包含的 Long 值。
null
值的MutableRealmInteger
为.equals
递增 和 递减 操作符会抛出 IllegalStateException 应用于
null
值的MutableRealmInteger
时。
MutableRealmInteger
作为托管RealmModel对象的成员,s 是最有趣的。 当托管时,递增和递减操作符实现
无冲突复制数据类型 :来自多个分布式客户端的并行递增和递减将正确聚合。实例,如果表示用户“Fred”的对象的counter
字段的值当前为0 ,那么在两个不同设备上同时执行以下代码(即使仅通过慢速且不可靠的网络连接),也会
始终会导致counter
的值收敛,并最终收敛到值 2。
MutableRealmInteger counter = realm.where(Users.class) .equalTo("name", Fred) .findFirst() .counter.increment(1);
请注意,使用设立(长整型)操作符时必须格外小心。 它将消除之前调用increment(long)或decrement(long)的任何效果。 尽管MutableRealmInteger
的值在跨设备时始终会收敛,但其收敛的具体值将取决于操作发生的实际顺序。 因此,不建议将设立(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。
方法摘要
修饰符和类型 | 方法和说明 |
---|---|
public final int |
|
public abstract void | 递减 |
public final boolean | |
public abstract Long | get () 获取 |
public final int | hashCode ()
|
public abstract void | 递增 |
public final boolean | isNull () |
public static MutableRealmInteger | ofNull () 创建一个新的非托管 |
public final void | 设置 |
public abstract void | |
public static MutableRealmInteger | |
public static MutableRealmInteger | 使用指定的初始值创建一个新的非托管 |
public static MutableRealmInteger |
继承方法
从类 java.lang.Object 继承的方法 :
getClass
、hashCode
、equals
、clone
、toString
、notify
、notifyAll
、wait
、wait
、wait
、finalize
方法详细信息
compareTo
参数
返回: -1、0 或 1,具体取决于此对象的值是 <、= 还是 > 目标的值。 |
递减
递减 参数
|
等于
获取
hashCode
增量
递增 参数
|
IsNull
ofNull
public static MutableRealmInteger ofNull () |
---|
创建一个新的非托管 MutableRealmInteger ,其值为null 。 |
集
的值
使用指定的初始值创建一个新的非托管 参数
|
使用指定的初始值创建一个新的非托管 参数
|