Подписка на потребителя в rx java? - PullRequest
0 голосов
/ 09 июля 2020

Я заменил вызов действия Consumer в своем коде, но при подписке он продолжает просить меня передать его наблюдателю

Ниже приведен код

public void fetchSubscriptionPlans(String url, String apiKey, String authToken,
                                   final Consumer<List<ContentDatum>> subscriptionPlans) {
    appCMSSubscriptionPlanRest.getPlansById(url,authHeaders).enqueue(new Callback<List<ContentDatum>>() {
        @Override
        public void onResponse(Call<List<ContentDatum>> call, Response<List<ContentDatum>> response) {
            try {

                Observable.just(response.body())
                        .onErrorResumeNext(throwable -> Observable.empty())
                        .subscribe(subscriptionPlans);
            } catch (Exception e) {
                Observable.just((List<ContentDatum>) null)
                        .onErrorResumeNext(throwable -> Observable.empty())
                        .subscribe(subscriptionPlans);
            }
        }

        @Override
        public void onFailure(Call<List<ContentDatum>> call, Throwable t) {

        }
    });
}

Я получаю сообщение об ошибке .subscribe(subscriptionPlans);, чтобы преобразовать его как .subscribe((Observer<? super List<ContentDatum>>) subscriptionPlans);

Что должно быть правильным?

И при запуске кода я получаю исключение

cannot be cast to rx.Observer

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

У меня был неправильный импорт для Observable. Придется использовать это

io.reactivex.rxjava3.core.Observable
0 голосов
/ 09 июля 2020

Во-первых, убедитесь, что ваш потребитель относится к типу: io.reactivex.functions.Consumer

Во-вторых, я думаю, что ваш response.body() возвращает не List из ContentDatum.

I такая же ошибка возникает при следующих действиях:

Consumer<Integer> subscriptionPlans = list -> {};

Observable.just("Hello")
        .onErrorResumeNext((Throwable throwable) -> Observable.empty())
        .subscribe(subscriptionPlans);

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...