jjzjj

java - "No Instance of type variable R exist so that Observable conforms to Observable"更新到 RxJava2 时出错

coder 2023-12-21 原文

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

错误:

No Instance of type variable R exist so that Observable conforms to 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 时,代码工作正常。

谢谢

最佳答案

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

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

关于java - "No Instance of type variable R exist so that Observable conforms to Observable"更新到 RxJava2 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41000696/

有关java - "No Instance of type variable R exist so that Observable conforms to Observable"更新到 RxJava2 时出错的更多相关文章

随机推荐