Classe MutableRealmInteger
Nesta página
io.realm
Interfaces implementadas:
Um MutableRealmInteger
é um mutável, Long -como quantidade numérica. Ele se comporta quase exatamente como uma referência a um Long . Mais especificamente:
Um
MutableRealmInteger
pode ter o valornull
.O operador igual compara o comprimento contido valores.
null
com valorMutableRealmInteger
são.equals
O operador compareTo compara o comprimento contido valores. Considera
null
< qualquer valor que não sejanull
.Os operadores de incremento e decremento jogam IllegalStateException quando aplicado a um
null
com valorMutableRealmInteger
.
MutableRealmInteger
s são mais interessantes como membros de um objeto RealmModel gerenciado. Quando gerenciados, os operadores de incremento e decremento implementam uma
tipo de dados replicado sem conflitos : Aumentos e decrementos simultâneos de vários clientes distribuídos serão agregados corretamente. Por exemplo, se o valor do campo counter
para o objeto que representa o usuário "Fred" for atualmente 0, o código a seguir, executado em dois dispositivos diferentes, simultaneamente, mesmo se conectado apenas por uma rede lenta e não confiável, será
sempre faz com que o valor de counter
converja, eventualmente sobre o valor 2.
MutableRealmInteger counter = realm.where(Users.class) .equalTo("name", Fred) .findFirst() .counter.increment(1);
Observe que o operador set(Long) deve ser usado com extremo cuidado. Ele anulará os efeitos de quaisquer chamadas anteriores para increment(long) ou decrement(long) . Embora o valor de MutableRealmInteger
sempre converja entre dispositivos, o valor específico para o qual ele converge dependerá da ordem real em que as operações ocorreram. Portanto, misturar set(Long) com incremento(long) e decrement(long) não é recomendado, a menos que a contagem difusa seja aceitável.
MutableRealmInteger
s podem não ser chaves primárias. Suas implementações não são seguras para threads. Como todos os objetos de Realm gerenciados, os MutableRealmInteger
s gerenciados não podem ser movidos entre threads. MutableRealmInteger
s não gerenciados podem ser movidos entre threads, mas exigem publicação segura.
Um MutableRealmInteger
, em uma classe de modelo, deve sempre ser declarado final
. Por exemplo:
public final MutableRealmInteger counter = MutableRealmInteger.ofNull();
Embora inicializar o MutableRealmInteger
como null
possa funcionar em circunstâncias muito limitadas, os desenvolvedores são aconselhados
não fazer isso:
public final MutableRealmInteger counter = null; // DO NOT DO THIS!
Observe também que, quando um MutableRealmInteger
é @Required
, é melhor, embora não seja necessário, inicializá-lo com um valor não nulo.
@Required public final MutableRealmInteger counter = MutableRealmInteger.valueOf(0L);
Uma referência a um MutableRealmInteger
managed está sujeita a todas as restrições que se aplicam ao objeto do modelo do qual foi obtida: ele só pode ser mutado dentro de uma transação e se torna inválido se o Realm que o apoia estiver fechado. Use os operadores isManaged()
e isValid()
para determinar se um MutableRealmInteger
está em um estado consistente. Observe, em particular, que uma referência a um MutableRealmInteger
managed retém uma referência ao objeto de modelo ao qual pertence. Por exemplo neste código:
MutableRealmInteger counter = realm.where(Users.class).findFirst().counter;
o counter
contém uma referência ao objeto de modelo User
do qual foi obtido. Nenhum dos dois pode ser agrupado até que todas as referências a ambos sejam inacessíveis.
Resumo do método
Modificador e tipo | Método e descrição |
---|---|
public final int |
|
public abstract void | Diminui o |
public final boolean | |
public abstract Long | get () Obtém o valor |
public final int | hashCode () O código hash de um |
public abstract void | Aumenta o |
public final boolean | isNull () |
public static MutableRealmInteger | ofNull () Cria um novo |
public final void | Define o valor |
public abstract void | |
public static MutableRealmInteger | |
public static MutableRealmInteger | Cria um novo |
public static MutableRealmInteger |
Métodos herdados
Métodos herdados da classe java.lang.Object :
getClass
,hashCode
,equals
,clone
,toString
,notify
,notifyAll
,wait
,wait
,wait
,finalize
Detalhes do método
compareTo
Parâmetros
Devoluções -1, 0 ou 1, dependendo se o valor deste objeto é <, =, ou > do destino. |
diminuir
Diminui o Parâmetros
|
é igual a
Dois Parâmetros
Devoluções verdadeiro se o destino tiver o mesmo valor. Substitui
|
obter
hashCode
public final int hashCode () |
---|
O código hash de um Devoluções verdadeiro se o destino tiver o mesmo valor. Substitui
|
Incremento
Aumenta o Parâmetros
|
IsNull
ofNull
public static MutableRealmInteger ofNull () |
---|
Cria um novo MutableRealmInteger não gerenciado cujo valor é null . |
set
Define o valor Parâmetros
|
valor de
Cria um novo Parâmetros
|
Cria um novo Parâmetros
|
Cria um novo Parâmetros
|