Menu Docs
Página inicial do Docs
/ /
Tipos de dados

Enumerações - SDK Java

Enumerações, também conhecidas como enums, não são suportadas nativamente no SDK Java. No entanto, você pode usar enums Java e Kotlin em seus objetos de Realm se seguir estas etapas.

Para usar um enumeração em uma classe de Objeto de Realm , defina um campo com um tipo que corresponda ao tipo de dados subjacente do enumeração. Crie getters e setters para o campo que converte o valor do campo entre o valor subjacente e o tipo de enumeração . Você pode usar o método Enum.valueOf() integrado do Java para converter do tipo subjacente para o tipo de enumeração .

Classe Enum
public enum FrogState {
TADPOLE("Tadpole"),
FROG("Frog"),
OLD_FROG("Old Frog");
private String state;
FrogState(String state) {
this.state = state;
}
public String getState() {
return state;
}
}
Objeto de Realm
import io.realm.RealmObject;
public class Frog extends RealmObject {
String name;
String state = FrogState.TADPOLE.getState();
// realm-required empty constructor
public Frog() {}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public FrogState getState() {
// because state is actually a String and another client could assign an invalid value,
// default the state to "TADPOLE" if the state is unreadable
FrogState currentState = null;
try {
// fetches the FrogState enum value associated with the current internal string value
currentState = FrogState.valueOf(state);
} catch (IllegalArgumentException e) {
currentState = FrogState.TADPOLE;
}
return currentState;
}
public void setState(FrogState value) {
// users set state using a FrogState, but it is saved as a string internally
this.state = value.getState();
}
}
Uso
Frog frog = realm.createObject(Frog.class);
frog.setName("Jonathan Livingston Applesauce");
// set the state using the enum
frog.setState(FrogState.FROG);
// fetching the state returns an enum
FrogState currentJonathanState = frog.getState();
Classe Enum
enum class FrogState(val state: String) {
TADPOLE("Tadpole"),
FROG("Frog"),
OLD_FROG("Old Frog");
}
Objeto de Realm
import io.realm.RealmObject
import java.lang.IllegalArgumentException
open class Frog // realm-required empty constructor
: RealmObject() {
var name: String? = null
private var state: String = FrogState.TADPOLE.state
var stateEnum: FrogState
get() {
// because state is actually a String and another client could assign an invalid value,
// default the state to "TADPOLE" if the state is unreadable
return try {
// fetches the FrogState enum value associated with the current internal string value
FrogState.valueOf(state)
} catch (e: IllegalArgumentException) {
FrogState.TADPOLE
}
}
set(value) {
// users set state using a FrogState, but it is saved as a string internally
state = value.state
}
}
Uso
val frog = realm.createObject(Frog::class.java)
frog.name = "Jonathan Livingston Applesauce"
// set the state using the enum
frog.stateEnum = FrogState.FROG
// fetching the state returns an enum
val currentJonathanState: FrogState = frog.stateEnum

Voltar

Misto

Nesta página