我創建了擴展RealmObject的類。 並計劃添加Map
字段如下,但我注意到Realm不支持Map
呢。具有映射字段的Java RealmObject
public class SmsPattern extends RealmObject {
@PrimaryKey
private String id;
@Required
private String address;
@Required
private String regex;
@Required
private Map<Integer, Integer> regexGroup;
}
所以作爲替代,我將其轉換Map
到Json String
和使用Json String
代替Map
這樣。
public class SmsPattern extends RealmObject {
@PrimaryKey
private String id;
@Required
private String address;
@Required
private String regex;
@Required
private String regexGroup;
@Ignore
private Map<Integer, Integer> regexGroupMap;
public Map<Integer, Integer> getRegexGroupMap() {
Type type = new TypeToken<Map<Integer, Integer>>(){}.getType();
return new Gson().fromJson(getRegexGroup(), type);
}
public void setRegexGroupMap(Map<Integer, Integer> regexGroupMap) {
setRegexGroup(new Gson().toJson(regexGroupMap));
}
}
這是一個正常的解決方案嗎? 還是更好的主意?
不好意思捎帶你的問題。我使用realm 1.1.0,它修復了幾個問題,但是我看到一個奇怪的行爲,我將值放入我的唯一鍵控的RealmObject中的(At)Ignore Map字段中,但是當我查詢該對象時Map是空的。我想我理解這是爲什麼(因爲(在)忽略字段沒有持久性?),但是如何在RealmObject中有任何(at)Ignore字段是有用的?很顯然,我必須錯過這裏明顯的東西...... – swooby