我有一個ArrayList<? extends BaseModel>
我想在Realm中存儲。存儲ArrayList <?在Realm中擴展BaseModel>
我有幾個擴展BaseModel的類,它們都存儲在這個ArrayList中。如果我將此存儲在磁盤上,請問Realm會做正確的事情嗎?每個子類可能有它自己的附加成員和方法。
我應該嘗試自己測試一下,但是我遠離了我的開發機器,所以我以爲無論如何我都會問,如果沒有人首先得到答案,我會自己回答。
謝謝!
我有一個ArrayList<? extends BaseModel>
我想在Realm中存儲。存儲ArrayList <?在Realm中擴展BaseModel>
我有幾個擴展BaseModel的類,它們都存儲在這個ArrayList中。如果我將此存儲在磁盤上,請問Realm會做正確的事情嗎?每個子類可能有它自己的附加成員和方法。
我應該嘗試自己測試一下,但是我遠離了我的開發機器,所以我以爲無論如何我都會問,如果沒有人首先得到答案,我會自己回答。
謝謝!
您可以通過電話copyToRealmOrUpdate()
存儲BaseModel
列表中,如果BaseModel
延長RealmObject
類的,或者如果實現RealmModel
接口:
void storeListToRealm(List<? extends BaseModel> models) {
realm.beginTransaction();
realm.copyToRealmOrUpdate(models);
realm.commitTransaction();
}
否則,您需要創建「StoreModel」,其中可以儲存到境界,並從BaseModel
到StoreModel
映射。
境界生成RealmModuleMediator
類具有下面的代碼:
public String getTableName(Class<? extends RealmModel> clazz) {
checkClass(clazz);
if (clazz.equals(com.yourpackage.somemodel)) {
return io.realm.SomeModelRealmProxy.getTableName();
} else if (clazz.equals(com.yourpackage.anothermodel)) {
return io.realm.AnotherRealmProxy.getTableName();
} else if ...
看起來對我來說沒什麼區別,你是否在子類或超類通過。