2016-06-23 29 views
7

Tôi đang làm việc trên một ứng dụng Android và Realm, và tôi cần phải tạo một thuộc tính enum cho một trong các đối tượng của tôi; nhưng tôi đã phát hiện ra ở đây post rằng Realm không hỗ trợ enum.Enums hỗ trợ với Realm?

đối tượng của tôi là như thế này:

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

và lớp enum của tôi (ShuttleTypes) tương ứng với:

HOME = 1; 

WORK = 2; 

Ai có thể gợi ý cho tôi làm thế nào để làm điều đó ?

Trả lời

19

Bạn có thể sử dụng các mô hình được mô tả trong vấn đề này: https://github.com/realm/realm-java/issues/776#issuecomment-190147079

Về cơ bản lưu nó như một String trong Realm và chuyển đổi nó đi vào và ra khỏi:

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