,原始Flowable<< \ List>>转换为Single<< \ List>>。事实证明,如果我创建Consumer来订阅Single, 除了Object之外,不能更改Consumer值类型?
@Override
public void loadBannerData(final ADFilterType adFilterType) {
remoteListDataSource.getBannerListData(adFilterType)
.flatMap(new Function<List<BannerBeanList.BannerBean>, Publisher<?>>() {
@Override
public Publisher<?> apply(List<BannerBeanList.BannerBean> bannerBeen) throws Exception {
return Flowable.fromIterable(bannerBeen);
}
})
.toList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
/******************************Consume Value Type**************************
.subscribe(new Consumer<List<BannerBeanList.BannerBean>>() {
@Override
public void accept(List<BannerBeanList.BannerBean> bannerBeens) throws Exception {
mainTabView.showMainBanner(bannerBeens);
}
});
*****************************************************************************/
}
答案 0 :(得分:5)
从我的评论中:发生这种情况是因为您的代码中有Publisher<?>
而不是Publisher<BannerBeanList.BannerBean>
。通常,IDE无法推断lambda或功能接口的类型,你最终会得到什么?或使用某些生成/转换重构函数时对象作为其类型。