我正在通过我的自定义类改造arraylist。我通过扩展RealmObject
将同一个类转换为领域。但我无法添加数据或创建对象。如何将相同的数据写入/更新到领域?
我的改装回调:
Callback<ArrayList<CustomModel>> callback);
改造代码:
@Override
public void success(ArrayList<CustomModel> mycustomListModel, Response response) {
realm.beginTransaction();
realm.copyToRealmOrUpdate(mycustomListModel);
realm.commitTransaction();
}
答案 0 :(得分:2)
请注意,Retrofit返回的TYPE是您的POJO类,而不是您的Model类。
由于POJO类具有相应的字段作为模型,因此每次循环时都必须创建一个新的Model对象,然后从pOJO类中提取字段并将它们设置在Realm模型上;然后最后copyToRealm并提交你的交易。
我希望这有助于您了解其工作原理!!
答案 1 :(得分:2)
您可以从RealmObject扩展CustomModel
。
然后设置gson以进行正确的解析。
Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
})
.create();
现在您可以将您的对象用于Retrofit。无需创建单独的类。