首页 > 解决方案 > 如何使 Single 流变平

问题描述

我有这个代码

    public Stream<PaymentEntity> getPayments(List<String> paymentIds) {
        return paymentIds.stream()
                .flatMap(id -> paymentsRepository.getById(id))

}

paymentsRepository.getById(id)正在返回Single<PaymentEntity>

但是我得到了编译时错误

不存在类型变量 R 的实例,因此 Single 符合 Stream

编辑,任何询问Single http://reactivex.io/documentation/single.html的人

标签: javajava-streamrx-java

解决方案


您可以使用

return paymentIds.stream()
            .map(id -> paymentsRepository.getById(id).toBlocking().value());

或者rxjava 2你可以使用:

 return paymentIds.stream()
            .map(id -> paymentsRepository.getById(id).blockingGet());

发表评论后,我认为您可以使用此解决方案:

 List<PaymentEntity> result = new ArrayList<>();
 paymentIds.forEach(id -> paymentsRepository.getById(id).toObservable().subscribe(result::add));
 return result.stream();

推荐阅读