2016-06-23 47 views
7

Sto lavorando su un'app per Android e su Realm, e ho bisogno di creare un attributo enum per uno dei miei oggetti; ma ho scoperto in questo post che Realm non supporta ancora enum.Supporto di enumerazioni con il reame?

Il mio obiettivo è come questo:

public class ShuttleOption extends RealmObject { 
    private int Id; 
    private String Label; 
    private ShuttleTypes OriginShuttleType; 
} 

e la mia classe enum (ShuttleTypes) corrisponde a:

HOME = 1; 

e

WORK = 2; 

Qualcuno mi può suggerire come farlo ?

risposta

19

È possibile utilizzare il modello descritto nel numero: https://github.com/realm/realm-java/issues/776#issuecomment-190147079

Fondamentalmente salvarlo come una stringa in Reame e convertirlo andando dentro e fuori:

public enum MyEnum { 
    FOO, BAR; 
} 

public class Foo extends RealmObject { 
    private String enumDescription; 

    public void saveEnum(MyEnum val) { 
    this.enumDescription = val.toString(); 
    } 

    public MyEnum getEnum() { 
    return MyEnum.valueOf(enumDescription); 
    } 
}