2016-06-23 65 views
7

我正在开发一个android应用程序和Realm,我需要为我的一个对象创建枚举属性;但是我在post中发现Realm不支持enum呢。使用Realm支持枚举?

我的目标是这样的:

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

和我的枚举类(ShuttleTypes)与对应:

HOME = 1; 

WORK = 2; 

可有人建议我该怎么办呢?

回答

19

您可以使用问题描述的模式:https://github.com/realm/realm-java/issues/776#issuecomment-190147079

基本上它保存为境界字符串,并将其转换进进出出:

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); 
    } 
}