我有这个代码

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

}


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

但是我编译时出错


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


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

最佳答案

您可以使用

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();

07-24 09:18