"No Instance of type variable R exist so that Observable conforms to Observable" 更新到 RxJava2 时出错
"No Instance of type variable R exist so that Observable conforms to Observable" Error when updating to RxJava2
我正在尝试使用 retrofit and 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>>());
结果class模型:
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 版本:
compile 'com.squareup.retrofit2:adapter-rxjava2:latest.version'
我正在尝试使用 retrofit and 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>>());
结果class模型:
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 版本:
compile 'com.squareup.retrofit2:adapter-rxjava2:latest.version'