对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订阅(订阅者T)
谢谢您的建议。
答案 0 :(得分:1)
看起来您的项目中同时具有RxJava1和RxJava2。进入API后,您将在代码中尝试使用RxJava1中的Completable
方法,而您正尝试使用RxJava2中的subscribe(CompletableObserver)
方法