Os Atlas Device SDKs estão obsoletos. Consulte apágina de descontinuação do para detalhes.
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.
Uso
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