编程语言
首页 > 编程语言> > 更新到RxJava2时出现“没有类型变量R的实例,因此Observable符合Observable”错误

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

作者:互联网

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

错误:

No Instance of type variable R exist so that Observable conforms to
Observable

阿皮

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时,代码可以正常工作.

谢谢

解决方法:

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

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

标签:rx-java2,rx-java,retrofit2,java,android
来源: https://codeday.me/bug/20191112/2023706.html