首页 > 解决方案 > CompletableObserver 找不到合适的方法

问题描述

对 RxJava 还是有点新,并尝试实现一个返回 Completable 的方法:

这是改造类:

@GET
Completable fetchSomething(@Url String url);

这是我调用该方法的地方:

myRetrofit.fetchSomething(url)
    .subscribe(new CompletableObserver() {
        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onComplete() {

        }

        @Override
        public void onError(Throwable e) {

        }
    });
}

看起来很简单,但是 CompletableObserver 的主体不会编译。我收到此错误:

错误:找不到适合订阅的方法(匿名 CompletableObserver)
方法 Completable.subscribe(Action0)不适用
(参数不匹配;匿名 CompletableObserver 无法转换为 Action0)
方法 Completable.subscribe(CompletableSubscriber)不适用
(参数不匹配;匿名 CompletableObserver无法转换为 CompletableSubscriber)
方法 Completable.subscribe(Subscriber) 不适用
(无法推断类型变量 T
(参数不匹配;匿名 CompletableObserver 无法转换为订阅者 T ))
其中 T 是类型变量:
T 扩展在方法 T subscribe(Subscriber T) 中声明的对象

感谢您的任何建议。

标签: androidretrofitrx-java

解决方案


看起来您的项目中同时拥有 RxJava1 和 RxJava2。一旦进入 API,您在代码中使用Completable来自 RxJava1 的代码,您尝试使用subscribe(CompletableObserver)来自 RxJava2 的方法


推荐阅读