Подтвердить что ты не робот

Не удается подписаться на RxJava 2, наблюдаемый с помощью TestSubscriber

Почему мой компилятор не позволяет мне подписываться на Observable с помощью TestSubscriber?

Здесь мой код:

TestSubscriber<User> testSubscriber = new TestSubscriber<>();
Observable.just(new User()).subscribe(testSubscriber);

И он говорит, что не может разрешить метод subscribe, который принимает этот параметр. Но во всех обучающих программах RxJava они используют TestSubscriber без таких проблем. Что я могу сделать, чтобы проверить такое наблюдение?

4b9b3361

Ответ 1

Это потому, что *Subscriber предназначены для Flowable, тогда как Observable использует классы *Observer. Это связано с тем, что стандартные уровни реактивных потоков Subscriber для полностью совместимого интерфейса Publisher, который реализуется Flowable.

Дополнительно с RxJava2 все реактивные классы имеют метод .test(), который непосредственно даст вам соответствующий объект тестирования.

Ответ 2

Для перехода с RxJava 1 на RxJava 2 я просто заменил TestSubscriber на TestObserver чтобы сделать Observable#subscribe скомпилировать и работать вызовы.