Generics 使用通用功能,结合使用rxjava和平面映射运算符来执行api调用
我的api服务接口:Generics 使用通用功能,结合使用rxjava和平面映射运算符来执行api调用,generics,retrofit,rx-java2,flatmap,Generics,Retrofit,Rx Java2,Flatmap,我的api服务接口: Observable <PlanResponse> getPlansRx(@Query string) ( @Header("session-token") String session_token ); 可观察的getPlansRx(@Query string) ( @标题(“会话令牌”)字符串会话令牌 ); 我的ApiCall使用Rxjava: private <
Observable <PlanResponse> getPlansRx(@Query string)
(
@Header("session-token") String session_token
);
可观察的getPlansRx(@Query string)
(
@标题(“会话令牌”)字符串会话令牌
);
我的ApiCall使用Rxjava:
private < T extends BaseResponse > void execute( Function<T,Observable> function, ArrayList < T > arrayList, final IHttpCallBack< T > serverResponseCallBack ){
Observable.fromIterable(arrayList)
.flatMap(s->
function.apply(s)
).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<T>() {
@Override
public void onSubscribe ( @NonNull Disposable d ) {
}
@Override
public void onNext (T t ) {
}
@Override
public void onError ( @NonNull Throwable e ) {
}
@Override
public void onComplete ( ) {
}
});
}
privatevoid execute(函数函数,ArrayListArrayList,最终IHttpCallBackserverResponseCallBack){
可观察。可从可观察(arrayList)
.flatMap(s->
功能。应用
).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新观察员){
@凌驾
订阅时的公共无效(@NonNull-d){
}
@凌驾
下一页(T){
}
@凌驾
公共无效onError(@NonNull可丢弃e){
}
@凌驾
未完成的公共无效(){
}
});
}
}
实际上,当我想使用此方法创建Api调用时,我不知道如何将Api服务接口作为参数传递给Api调用方法,因为我必须使用ArrayList元素作为参数来调用此方法,但正如您所看到的,它是在executeRx方法和flatMap中完成的。我应该怎么做
public void getPlans(ArrayList< Object > allCcPlans, IHttpCallBack < PlanResponse > serverResponseCallBack ){
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
Function function = (Function) instance.getApi().getPlansRx("?");
instance.executeRx(function,allCcPlans,serverResponseCallBack);
}
}
public void getPlans(ArrayList
我应该用什么来代替问号呢
我坚持创建此方法的原因是为我的所有多并行请求创建一个通用方法