6

我正在尝试使用retrofit and rxJava. 下面的代码在使用时似乎运行良好RxJava 1,但是一旦我更新到RxJava 2我就会收到此错误:

错误 :

不存在类型变量 R 的实例,因此 Observable 符合 Observable

api

Observable<HttpResult<List<Article>>> getList(@Query("key")String key);

Api 请求在这里完成,这就是我在.map操作员内部得到这个错误的地方

Observable cache=providers.getList().map(new HttpRsltFunc<List<Article>>());

结果类模型:

private  class HttpRsltFunc<T> implements Func1<HttpResult<T>, T> {
       @Override
       public T call(HttpResult<T> httpResult) {   
           return httpResult.getData();
       }
   }

编辑 :

导入rx.Observable而不是io.reactivex.Observable代码时工作得很好。

谢谢

4

1 回答 1

4

出现这种情况是因为 rxjava2 迁移到了自己的功能接口,所以需要实现不同的接口而不是Func1.

并且不要忘记将改造适配器更新为 rxjava2 版本: compile 'com.squareup.retrofit2:adapter-rxjava2:latest.version'

于 2016-12-06T21:21:26.290 回答