我正在使用Realm和RxJava,最后我想获取一个可以使用的观察点:
@Override
public Observable<List<Data>> getData_List() {
final Observable<RealmResults<Data>> observable
= realm.where(Data.class).findAll().asObservable();
}
这是我目前的代码,截至目前我收到的错误是它们是不兼容的类型,即 observable 是io.reactivex.Observable
而Realm返回的类型是rx.Observable<io.realm.RealmResults<E>>
}。
我想要做的是查询领域数据库并返回一个Observable数据对象列表(Observable<List<Data>>
)。
我该怎么做?
答案 0 :(得分:1)
asObservable()
方法返回RxJava1.x类型,已弃用。由于您使用的是RxJava2,因此类型不匹配。有关详细信息,请参阅this github问题。
答案 1 :(得分:1)
为了将RxJava1 Observable转换为RxJava2 Observable,您可以使用RxJavaInterop.toV2Flowable(rx.Observable);
使用RxJava2Interop库。
答案 2 :(得分:-1)
您可以使用toList()运算符来实现此目的。 RealmResults只是数据库的游标或指针,它们不能直接用作列表。如果您想了解更多关于toList的信息,请关注此博客。
http://tomstechnicalblog.blogspot.com/2015/11/rxjava-operators-tolist.html