Невозможно запросить использование области

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

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

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

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

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


person Jude Fernandes    schedule 05.02.2017    source источник
comment
AsObservable возвращает тип для RxJava1   -  person EpicPandaForce    schedule 05.02.2017


Ответы (3)


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

person koperko    schedule 05.02.2017

Чтобы преобразовать RxJava1 Observable в RxJava2 Observable, вы можете использовать библиотеку RxJava2Interop, используя RxJavaInterop.toV2Flowable(rx.Observable);.

person EpicPandaForce    schedule 05.02.2017
comment
Можете ли вы помочь мне с этим вопросом: stackoverflow.com/questions/42060003/ - person OBX; 06.02.2017

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

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

person sam33r    schedule 05.02.2017