2017-02-05 7 views
1

Я использую Сферу вместе с RxJava и в конце я хочу принести наблюдаемый, что я могу использовать:Невозможно запросить использовать Realm

@Override 
public Observable<List<Data>> getData_List() { 
    final Observable<RealmResults<Data>> observable 
           = realm.where(Data.class).findAll().asObservable(); 
} 

Это мой текущий код, как сейчас я получаю сообщение об ошибке говоря, что они являются несовместимыми типами, то есть наблюдаемый равен io.reactivex.Observable, тогда как то, что возвращает Царство, имеет тип rx.Observable<io.realm.RealmResults<E>>.

Что я хочу сделать, это запросить базу данных области и вернуть список объектов данных (Observable<List<Data>>).

Как я могу это сделать?

+0

Тип возвращаемого типа AsObservable для RxJava1 – EpicPandaForce

ответ

1

asObservable() метод возвращает RxJava1.x типы и устарел. Поскольку вы используете RxJava2, типы не совпадают. См. this github для получения дополнительной информации.

-1

Для этого вы можете использовать оператор toList(). RealmResults - это только курсор или указатель на базу данных, и они не могут использоваться как список напрямую. Следуйте этому блогу, если хотите узнать больше о toList.

http://tomstechnicalblog.blogspot.com/2015/11/rxjava-operators-tolist.html

1

Для того, чтобы превратить RxJava1 Observable в RxJava2 наблюдаемого, вы можете использовать RxJava2Interop библиотеки с помощью RxJavaInterop.toV2Flowable(rx.Observable);.

+0

Помогите мне с этим вопросом: http://stackoverflow.com/questions/42060003/speed-of-search-operation-in-a-realm-database – OBX

Смежные вопросы