io.realm
Interfaces implementadas:
Um MutableRealmInteger é uma quantidade numérica mutável, semelhante a Long. Ele se comporta quase exatamente como uma referência a um Long . Mais especificamente:
Um
MutableRealmIntegerpode ter o valornull.O operador igual compara os valores de Long contidos.
nullcom valor deMutableRealmIntegersão.equalsO operador compareTo compara os valores de Long contidos. Considera
null< qualquer valor nãonull.Os operadores de incremento e decremento lançam IllegalStateException quando aplicados a um
nullcom 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 livre de 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, então 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 | |
resumo público Longo | get () Obtém o valor |
public final int | hashCode () O código hash de um |
public abstract void | Aumenta o |
public final boolean | isNull () |
público estático MutableRealmInteger | ofNull () Cria um novo |
public final void | Define o valor |
public abstract void | |
público estático MutableRealmInteger | |
público estático MutableRealmInteger | Cria um novo |
público estático 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 |
set
Define o valor Parâmetros
|
Define o valor Parâmetros
|
valor de
Cria um novo Parâmetros
|
Cria um novo Parâmetros
|
Cria um novo Parâmetros
|