Realm ORM:如何处理地图?

Man*_*anu 8 java android realm

我正在创建一个Android应用程序,我需要坚持一个Map<String,MyClass>.我刚刚开始使用Realm ORM,因为它支持一对一和一对多的枚举和列表.我还找到了一个字符串列表的解决方法(即我必须创建一个封装字符串的StringWrapper类.但是,从我理解的文档中,没有简单的方法RealmMap,就像列表中发生的那样.所以,我正在寻找坚持地图的最佳方法.我目前的想法是用一个KeyValueObject封装了String(前一个地图键)和一个对象的对象列表替换我的地图MyClass.类似于Map.Entry.是否有任何其他解决方案不需要我重新编写域模型技术原因?

gei*_*irt 20

正如您所注意到的,Realm还不支持地图:https://github.com/realm/realm-java/issues/759

您可以使用模型类:

class MyData extends RealmObject {
    private RealmList<MyMapEntry> myMap;
}

class MyMapEntry extends RealmObject {
    private String key;
    private MyClass value;
}
Run Code Online (Sandbox Code Playgroud)

假设您有一个MyData被调用的对象,myData并且您希望获取与之关联的值myKey,则该查询MyClass myClass = myData.getMyMap().where().equalTo("key", myKey).firstFirst()可能很有用.