更新到RxJava2时出现“没有类型变量R的实例,因此Observable符合Observable”错误

Moh*_*ANE 5 java android rx-java retrofit2 rx-java2

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

错误:

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

阿皮

Observable<HttpResult<List<Article>>> getList(@Query("key")String key);
Run Code Online (Sandbox Code Playgroud)

api请求在这里完成,这是我在.map运算符内收到此错误的地方

Observable cache=providers.getList().map(new HttpRsltFunc<List<Article>>());
Run Code Online (Sandbox Code Playgroud)

结果类模型:

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

编辑:

导入rx.Observable而不是io.reactivex.Observable代码时,效果很好。

谢谢

Ale*_*yev 4

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

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