【问题标题】:CompletableObserver No Suitable Method FoundCompletableObserver 找不到合适的方法
【发布时间】:2018-06-20 04:56:33
【问题描述】:

对 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)

感谢您的建议。

【问题讨论】:

  • 尝试 subscribeWith 而不是仅仅订阅

标签: android retrofit rx-java


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 2017-03-12
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多