Classe RealmAny
- java.lang.Object
-
- io.realm.RealmAny
-
public class RealmAny extends Object
RealmAny
é usado para representar um Realm value polimórfico.A qualquer momento, uma instância desta classe armazena um valor definido de um tipo definido. Se, por exemplo, for um valor duplo, você poderá chamar asDouble() para extrair esse valor. Você pode chamar getType() para descobrir que tipo de valor está armazenado atualmente. Chamar asDouble() em uma instância que não armazena um duplo criaria um
ClassCastException
.O RealmAny se comporta como um tipo de valor em todos os tipos suportados, exceto em Objeto de Realm. Isso significa que o Realm não persistirá nenhuma alteração no valor RealmAny, exceto quando o tipo for Objeto de Realm. Quando um RealmAny mantém um Objeto de Realm, ele mantém apenas a referência a ele, não uma cópia do objeto. Portanto, as modificações no Objeto de Realm são refletidas no valor RealmAny, inclusive se o objeto for excluído. Como as instâncias do RealmAny são imutáveis, uma nova instância é necessária para atualizar um atributo do RealmAny.
anObject.realmAnyAttribute = RealmAny.valueOf(5); anObject.realmAnyAttribute = RealmAny.valueOf(10.f);
Nossa recomendações para lidar com o polimorfismo RealmAny é escrever um caso de switch em torno do tipo RealmAny e sua classe de valor interna.
RealmAny realmAny = aRealmObject.realmAnyAttribute; switch (realmAny.getType()) { case OBJECT: if (realmAny.getValueClass().equals(DogRealmModel.class)) { DogRealmModel value = realmAny.asRealmModel(DogRealmModel.class); } case INTEGER: performAction(realmAny.asInteger()); break; case BOOLEAN: performAction(realmAny.asBoolean()); break; case STRING: performAction(realmAny.asString()); break; case BINARY: performAction(realmAny.asBinary()); break; case DATE: performAction(realmAny.asDate()); break; case FLOAT: performAction(realmAny.asFloat()); break; case DOUBLE: performAction(realmAny.asDouble()); break; case DECIMAL128: performAction(realmAny.asDecimal128()); break; case OBJECT_ID: performAction(realmAny.asObjectId()); break; case UUID: performAction(realmAny.asUUID()); break; case NULL: performNullAction(); break; }
getValueClass() retorna a classe Java que representa o valor interno envolto pela instância RealmAny. Se a classe resultante for uma realização de
RealmModel
, asRealmModel() poderá ser chamado para converter o valor RealmAny em uma referência de objeto de Realm.Os valores RealmAny também podem ser classificados. A ordem de classificação usada entre diferentes tipos de RealmAny, do mais baixo para o mais alto, é:
- Boolean
- Byte/Curto/Inteiro/Long/Float/Duplo/Decimal128
- byte[]/String
- Data
- ObjectId
- UUID
- RealmObject
RealmQuery.sort(String)
,RealmQuery.minRealmAny(String)
eRealmQuery.maxRealmAny(String)
funcionam. Especificamente,min()
emax()
não levarão apenas em conta os campos numéricos, mas usarão a ordem de classificação para determinar o valor "maior" ou "menor".
-
-
Resumo da classe aninhada
Classes agrupadas Modificador e tipo classe Descrição static class
RealmAny.Type
enumeração descrevendo todos os tipos suportados pelo RealmAny.
-
Resumo do método
Todos os métodos Métodos estáticos Métodos de instância Métodos concretos Modificador e tipo Método Descrição byte[]
asBinary()
Obtém este valor como um byte[] se for um, caso contrário, gera exceção.Boolean
asBoolean()
Obtém este valor como booleano se for um, caso contrário, lança exceção.Byte
asByte()
Obtém este valor como um Byte se for um, caso contrário, gera exceção.Date
asDate()
Obtém esse valor como uma data, se for um, caso contrário, gera exceção.Decimal128
asDecimal128()
Obtém esse valor como Decimal128 se for um; caso contrário, gera exceção.Double
asDouble()
Obtém esse valor como um duplo se for um, caso contrário, lança exceção.Float
asFloat()
Obtém este valor como Flutuante se for um, caso contrário, gera exceção.Integer
asInteger()
Obtém este valor como um Inteiro se for um, caso contrário, gera exceção.Long
asLong()
Obtém esse valor como um Long se for um, caso contrário, lança exceção.ObjectId
asObjectId()
Obtém esse valor como ObjectId se for um, caso contrário, gera exceção.<T extends RealmModel>
TasRealmModel(Class<T> clazz)
Obtém esse valor como um RealmModel se for um, caso contrário, gera exceção.Short
asShort()
Obtém esse valor como Curto se for um, caso contrário, gera exceção.String
asString()
Obtém esse valor como uma string se for um, caso contrário, lança exceção.UUID
asUUID()
Obtém esse valor como UUID se for um, caso contrário, gera exceção.boolean
coercedEquals(RealmAny other)
boolean
equals(Object other)
DoisRealmAny
s são.equals
se e somente se seus conteúdos forem iguais.RealmAny.Type
getType()
Obtém o tipo interno deste objeto RealmAny.Class<?>
getValueClass()
Retorna a classe Java que representa o valor interno envolto por este valor de RealmAny.int
hashCode()
O código hash de umRealmAny
é, exatamente, o código hash do seu valor.boolean
isNull()
Retorna verdadeiro se o valor interno for nulo; caso contrário, retorna falso.static RealmAny
nullValue()
Cria um novo RealmAny de um valor nulo.String
toString()
static RealmAny
valueOf(byte[] value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(RealmModel value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Boolean value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Byte value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Double value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Float value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Integer value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Long value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Short value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(String value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Date value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(UUID value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(Decimal128 value)
Cria um novo RealmAny com o valor especificado.static RealmAny
valueOf(ObjectId value)
Cria um novo RealmAny com o valor especificado.
-
-
-
Detalhes do método
-
getType
public RealmAny.Type getType()
Obtém o tipo interno deste objeto RealmAny.- Retorna:
- o RealmAny.Type interno
-
getValueClass
@Nullable public Class<?> getValueClass()
Retorna a classe Java que representa o valor interno envolto por este valor de RealmAny.- Retorna:
- a classe que representa o valor interno envolto por este valor RealmAny.
-
valor de
public static RealmAny valueOf(@Nullable Byte value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.INTEGER
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny contendo um valor de Byte.
-
valor de
public static RealmAny valueOf(@Nullable Short value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.INTEGER
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um Curto.
-
valor de
public static RealmAny valueOf(@Nullable Integer value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.INTEGER
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um Integer.
-
valor de
public static RealmAny valueOf(@Nullable Long value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.INTEGER
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um Long.
-
valor de
public static RealmAny valueOf(@Nullable Boolean value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.BOOLEAN
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um booleano.
-
valor de
public static RealmAny valueOf(@Nullable Float value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.FLOAT
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um Flutuador.
-
valor de
public static RealmAny valueOf(@Nullable Double value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.DOUBLE
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um duplo.
-
valor de
public static RealmAny valueOf(@Nullable String value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.STRING
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmQualquer uma de uma String.
-
valor de
public static RealmAny valueOf(@Nullable byte[] value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.BINARY
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um byte[].
-
valor de
public static RealmAny valueOf(@Nullable Date value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.DATE
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de uma data.
-
valor de
public static RealmAny valueOf(@Nullable ObjectId value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.OBJECT_ID
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um ObjectId.
-
valor de
public static RealmAny valueOf(@Nullable Decimal128 value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.DECIMAL128
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um Decimal128.
-
valor de
public static RealmAny valueOf(@Nullable UUID value)
Cria um novo RealmAny com o valor especificado. Se o valor não for nulo, o tipo seráRealmAny.Type.UUID
; caso contrário,RealmAny.Type.NULL
.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um UUID.
-
nullValue
public static RealmAny nullValue()
Cria um novo RealmAny de um valor nulo.- Retorna:
- uma nova instância RealmAny de um valor nulo.
-
valor de
public static RealmAny valueOf(@Nullable RealmModel value)
Cria um novo RealmAny com o valor especificado.- Parâmetros:
value
- o valor RealmAny.- Retorna:
- um novo RealmAny de um RealmModel.
-
IsNull
public boolean isNull()
Retorna verdadeiro se o valor interno for nulo; caso contrário, retorna falso.- Retorna:
- true se o valor interno for nulo, false caso contrário.
-
asByte
byte público asByte()
Obtém este valor como um Byte se for um, caso contrário, gera exceção.- Retorna:
- um byte.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
ascurto
curto público ascurto()
Obtém esse valor como Curto se for um, caso contrário, gera exceção.- Retorna:
- um curto.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asInteger
Public Integer asInteger()
Obtém este valor como um Inteiro se for um, caso contrário, gera exceção.- Retorna:
- um número inteiro.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asLong
public Long asLong()
Obtém esse valor como um Long se for um, caso contrário, lança exceção.- Retorna:
- um longo.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asBoolean
public boolean asBoolean()
Obtém este valor como booleano se for um, caso contrário, lança exceção.- Retorna:
- um booleano.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asFloat
public Flutuação asFloat()
Obtém este valor como Flutuante se for um, caso contrário, gera exceção.- Retorna:
- um flutuador.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asDouble
public Double asDouble()
Obtém esse valor como um duplo se for um, caso contrário, lança exceção.- Retorna:
- um duplo.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asString
string pública asString()
Obtém esse valor como uma string se for um, caso contrário, lança exceção.- Retorna:
- Uma string.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asBinary
byte público[] asBinary()
Obtém este valor como um byte[] se for um, caso contrário, gera exceção.- Retorna:
- um byte[].
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asDate
data pública asDate()
Obtém esse valor como uma data, se for um, caso contrário, gera exceção.- Retorna:
- uma data.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asObjectId
public ObjectId asObjectId ()
Obtém esse valor como ObjectId se for um, caso contrário, gera exceção.- Retorna:
- um ObjectId.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asUUID
UUID público comoUUID()
Obtém esse valor como UUID se for um, caso contrário, gera exceção.- Retorna:
- um UUID.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asDecimal128
public Decimal128 asDecimal128()
Obtém esse valor como Decimal128 se for um; caso contrário, gera exceção.- Retorna:
- um Decimal128.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
asRealmModel
public <T extends RealmModel> T asRealmModel(Class<T> clazz)
Obtém esse valor como um RealmModel se for um, caso contrário, gera exceção.- Parâmetros do tipo:
T
- o tipo RealmModel para converter o valor interno.- Retorna:
- um RealmModel do tipo T.
- Lançamentos:
ClassCastException
- se esse valor não for do tipo esperado.
-
hashCode
public final int hashCode()
O código hash de umRealmAny
é, exatamente, o código hash do seu valor.- Substitui:
hashCode
na aulaObject
- Retorna:
- verdadeiro se o destino tiver o mesmo valor
- Lançamentos:
NullPointerException
- se o valor interno for nulo
-
é igual a
public final boolean equals(@Nullable Object other)
DoisRealmAny
s são.equals
se e somente se seus conteúdos forem iguais.
-
-