首页 > 解决方案 > 调用 lambda 表达式中前一个运算符的对象中的方法

问题描述

我有一段代码

client.confirmPayment(identity, entity.getId())
                .map(response -> response.id)
                .flatMap(itemId -> signingService.orderSigning(itemId, identity))
                .doOnSuccess(signatureOrder->signatureOrder.setRedirectUrl("XXXX"));

client.confirmPayment方法返回类型的流Response

class Response{
    private String id;
    private String url;
}

有没有办法response.urldoOnSuccess运营商那里打电话?

标签: lambdajava-8streamrx-java

解决方案


它会是这样的:

Single<Response> responseSingle = client.confirmPayment(identity, entity.getId())
    .flatMap(response -> Single.just(response)
        .flatMap(r -> signingService.orderSigning(r.id, identity))
        .doOnSuccess(order -> order.setRedirectUrl(response.url))
    );

推荐阅读