rxJava中的新功能我正在努力通过嵌套改进的Observable来获得Observable。
在代码块.map(userResponse -> {
data.put
final Intent resd = new Intent();
resd.putExtras(data);
return (Intent)resd;
});
我收到循环推理错误。 当我尝试编译时,我得到一个奇怪的消息,我不太明白:
错误:(52,21)错误:不兼容的类型:无法推断类型变量R (参数不匹配; lambda表达式中的错误返回类型 Intent无法转换为Observable) 其中R,T是类型变量: R扩展方法flatMap中声明的Object(Func1>) T扩展了在Observable类中声明的Object
这是代码:
public Observable<Intent> createUser(final String email) {
Bundle data = new Bundle();
return mWebservice.clientAuth("myFakeClientId") //returns an Observable<AccessToken>
.map(clientTokenObject -> {
String clientToken = clientTokenObject.accessToken;
Observable<Response<User>> userResponseObservable = mWebservice.createAccount(email);
Observable<Intent> resultObs = userResponseObservable
.map(userResponse -> {
final Intent resd = new Intent();
resd.putExtras(data);
return (Intent)resd;
});
return resultObs;
});
}
(
答案 0 :(得分:3)
您的映射是错误的。你需要像
这样的东西public Observable<Intent> createUser(final String email) {
return mWebservice.clientAuth("myFakeClientId") //returns an Observable<AccessToken>
.map(clientTokenObject -> clientTokenObject.accessToken)
.flatMap(accessToken -> { mWebservice.createAccount(email).
.map(userResponse -> {
final Intent resd = new Intent();
Bundle data = new Bundle();
resd.putExtras(data);
return (Intent)resd;
})});
}