io.realm
io.realm.RealmAny se utiliza para representar un valor de Realm polimórfico.
En cualquier momento, una instancia de esta clase almacena un valor definido de un tipo definido. Si, por ejemplo, se trata de un valor doble, se puede llamar a asDouble() para extraerlo. Se puede llamar a getType() para descubrir qué tipo de valor está almacenado. Llamar a asDouble() en una instancia que no almacena un valor doble generaría una excepción java.lang.ClassCastException.
RealmAny se comporta como un tipo de valor en todos los tipos admitidos, excepto en los objetos Realm. Esto significa que Realm no conservará ningún cambio en el valor de RealmAny, excepto cuando el tipo sea un objeto Realm. Cuando un RealmAny contiene un objeto Realm, solo contiene la referencia a este, no una copia del objeto. Por lo tanto, las modificaciones del objeto Realm se reflejan en el valor de RealmAny, incluso si el objeto se elimina. Dado que las instancias de RealmAny son inmutables, se necesita una nueva instancia para actualizar un atributo de RealmAny.
anObject.realmAnyAttribute = RealmAny.valueOf(5); anObject.realmAnyAttribute = RealmAny.valueOf(10.f);
Es fundamental comprender que extraer un valor de un tipo específico requiere un conocimiento preciso del tipo almacenado. Llamar a un método getter para cualquier tipo específico que no sea el mismo que el valor almacenado generaría una excepción. Nuestra recomendación para gestionar el polimorfismo RealmAny es crear un caso de conmutación para el tipo RealmAny y su clase 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() devuelve la clase Java que representa el valor interno encapsulado por la instancia de RealmAny. Si la clase resultante es una implementación de io.realm.RealmModel, se puede llamar a asRealmModel() para convertir el valor de RealmAny a una referencia de objeto Realm.
Los valores de RealmAny también se pueden ordenar. El orden de clasificación utilizado entre los diferentes tipos de RealmAny, de menor a mayor, es:
Booleano
Byte/Corto/Entero/Largo/Flotante/Doble/Decimal128
byte[]/String
fecha
ObjectId
UUID
Objeto de reino
Esto tiene implicaciones en el funcionamiento de RealmQuery.sort(String), RealmQuery.minRealmAny(String) y RealmQuery.maxRealmAny(String). Especialmente min() y max() no solo tendrá en cuenta los campos numéricos, sino que utilizará el orden de clasificación para determinar el valor "más grande" o "más bajo".
Resumen de clases anidadas
Modificador y Tipo | Clase y descripción |
|---|---|
|
Resumen del método
Modificador y Tipo | Método y descripción |
|---|---|
public byte | asBinary () Obtiene este valor como un byte[] si es uno, de lo contrario arroja una excepción. |
booleanopúblico | asBoolean () Obtiene este valor como booleano si es uno, de lo contrario lanza una excepción. |
Bytepúblico | asByte () Obtiene este valor como un Byte si lo es; de lo contrario, lanza una excepción. |
asDate () Obtiene este valor como una fecha si es una, de lo contrario lanza una excepción. | |
Decimal128público | asDecimal128 () Obtiene este valor como un Decimal128 si lo es, de lo contrario lanza una excepción. |
public Double | asDouble () Obtiene este valor como Doble si es uno, de lo contrario lanza una excepción. |
Flotadorpúblico | asFloat () Obtiene este valor como un flotante si es uno, de lo contrario lanza una excepción. |
asInteger () Obtiene este valor como un entero si es uno, de lo contrario lanza una excepción. | |
público largo | asLong () Obtiene este valor como Long si es uno, de lo contrario lanza una excepción. |
ObjectIdpúblico | asObjectId () Obtiene este valor como ObjectId si es uno, de lo contrario arroja una excepción. |
public T | Obtiene este valor como RealmModel si es uno, de lo contrario lanza una excepción. |
público Corto | asShort () Obtiene este valor como Short si es uno, de lo contrario lanza una excepción. |
asString () Obtiene este valor como una cadena si es uno, de lo contrario arroja una excepción. | |
UUIDpúblico | asUUID () Obtiene este valor como un UUID si es uno, de lo contrario lanza una excepción. |
booleanofinal público | |
booleanofinal público | |
público RealmAny.Type | getType () Obtiene el tipo interno de este objeto RealmAny. |
Devuelve la clase Java que representa el valor interno envuelto por este valor RealmAny. | |
int final público | hashCode () El código hash de un |
booleanopúblico | isNull () Devuelve verdadero si el valor interno es nulo, falso en caso contrario. |
nullValue () Crea un nuevo RealmAny con un valor nulo. | |
toString () | |
Crea un nuevo RealmAny con el valor especificado. | |
Crea un nuevo RealmAny con el valor especificado. | |
Crea un nuevo RealmAny con el valor especificado. | |
Métodos heredados
Detalle del método
como binario
public byte asBinary () |
|---|
Obtiene este valor como un byte[] si es uno, de lo contrario arroja una excepción. Devuelve a byte[]. Lanzamientos
|
asBoolean
Obtiene este valor como booleano si es uno, de lo contrario lanza una excepción. Devuelve un booleano. Lanzamientos
|
como byte
Obtiene este valor como un Byte si lo es; de lo contrario, lanza una excepción. Devuelve a Byte. Lanzamientos
|
como fecha
Obtiene este valor como una fecha si es una, de lo contrario lanza una excepción. Devuelve una cita. Lanzamientos
|
comoDecimal128
public Decimal128 asDecimal128 () |
|---|
Obtiene este valor como un Decimal128 si lo es, de lo contrario lanza una excepción. Devuelve un decimal128. Lanzamientos
|
comoDoble
Obtiene este valor como Doble si es uno, de lo contrario lanza una excepción. Devuelve un Doble. Lanzamientos
|
asFloat
Obtiene este valor como un flotante si es uno, de lo contrario lanza una excepción. Devuelve un flotador. Lanzamientos
|
asInteger
Obtiene este valor como un entero si es uno, de lo contrario lanza una excepción. Devuelve un entero. Lanzamientos
|
asLong
Obtiene este valor como Long si es uno, de lo contrario lanza una excepción. Devuelve a Long. Lanzamientos
|
comoObjectId
public ObjectId asObjectId () |
|---|
Obtiene este valor como ObjectId si es uno, de lo contrario arroja una excepción. Devuelve an ObjectId. Lanzamientos
|
comoModeloDeReino
Obtiene este valor como RealmModel si es uno, de lo contrario lanza una excepción. Parámetros de tipo
Devuelve un RealmModel del tipo T. Lanzamientos
|
comoCorto
Obtiene este valor como Short si es uno, de lo contrario lanza una excepción. Devuelve Un corto. Lanzamientos
|
comoCadena
Obtiene este valor como una cadena si es uno, de lo contrario arroja una excepción. Devuelve una cadena. Lanzamientos
|
asUUID
Obtiene este valor como un UUID si es uno, de lo contrario lanza una excepción. Devuelve un UUID. Lanzamientos
|
coaccionadosIguales
equals
obtenerTipo
public RealmAny.Type getType () |
|---|
Obtiene el tipo interno de este objeto RealmAny. Devuelve el RealmAny.Type interior |
obtenerValorClase
public Class getValueClass () |
|---|
Devuelve la clase Java que representa el valor interno envuelto por este valor RealmAny. Devuelve la clase que representa el valor interno envuelto por este valor RealmAny. |
código hash
public final int hashCode () |
|---|
El código hash de un Devuelve verdadero si el objetivo tiene el mismo valor Lanzamientos
Anulaciones
|
es nulo
public boolean isNull () |
|---|
Devuelve verdadero si el valor interno es nulo, falso en caso contrario. Devuelve Verdadero si el valor interno es nulo, falso en caso contrario. |
nullValue
aCadena
valorDe
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.DECIMAL;128 en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo ReinoCualquiera de un decimal128. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.OBJECT_ID; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo RealmAny de un ObjectId. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.DATE; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo ReinoCualquiera de una Fecha. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.BINARY; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo ReinoCualquiera de un byte[]. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.STRING; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo ReinoCualquiera de una cadena. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.DOUBLE;en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo ReinoCualquiera de un Doble. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.FLOAT;en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo ReinoCualquiera de un Flotador. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.BOOLEAN;en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo reinoCualquiera de un valor booleano. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.INTEGER; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo reinoCualquiera de un largo. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.INTEGER; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo ReinoCualquiera de un entero. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.INTEGER; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo reinoCualquiera de un corto. |
Crea un nuevo RealmAny con el valor especificado. Si el valor no es nulo, el tipo será RealmAny.Type.INTEGER; en caso contrario, RealmAny.Type.NULL. Parámetros
Devuelve un nuevo RealmAny que contiene un valor Byte. |