【发布时间】:2018-01-01 19:19:15
【问题描述】:
我的目标是在 RecyclerAdapter 中显示从 Internet 接收到的数据。但是当我尝试这样做时,我得到了一个例外。我试着做这个代码
myService.getFromNet(name)
.subscribeOn(Schedulers.io())
.map(Cook::getPizza)
.flatMap(cooks -> {
Realm.getDefaultInstance().executeTransaction(realm -> {
realm.delete(PizzaViewDB.class);
//But here there is an error
realm.insert(cooks);
});
return io.reactivex.Observable.just(cooks);
})
.onErrorResumeNext(throwable -> {
Realm realm = Realm.getDefaultInstance();
RealmResults<PizzaViewDB> results = realm.where(PizzaViewDB.class).findAll();
//And below is problem - reason: no instance(s) if type variable(s) E exist to that List<E> comforms to String
return io.reactivex.Observable.just(realm.copyFromRealm(results));
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(re -> {
recyclerView.setAdapter(new CookAdapter(cook.getPizza()));
});
但我仍然有一个例外。我在这里使用 RealmList 的基类:
@SerializedName("pizza")
@Expose
private RealmList<PizzaViewDB> pizza;
public RealmList<PizzaViewDB> getPizza() {
return pizza;
}
还有我来自 Realm 的字段:
public class PizzaViewDB extends RealmObject implements RealmModel {
@PrimaryKey
private String subject;
private String comment;
private String date;
public void setSubject(String subject) {
this.subject = subject;
}
public void setDate(String date) {
this.date = date;
}
public void setComment(String name) {
this.comment = name;
}
public String getSubject() {
return subject;
}
public String getDate() {
return date;
}
public String getComment() {
return comment;
}
【问题讨论】:
-
这很可能意味着您使用的 Realm 版本早于 0.87.0(最新版本是 4.3.1)