gpt4 book ai didi

java - 如何在不同的 lambda 表达式中使用 lambda 表达式中的对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:44:05 25 4
gpt4 key购买 nike

我有这个代码

service.confirm(identity, id)
.map(confirmationResponse -> InternalToExternalResponse.mapToExternal(confirmationResponse))
.map(externalResponse->uriBuilder.buildAuthorizeUri(externalResponse))
.lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));

现在我需要扩展 uriBuilder.buildAuthorizeUri(externalResponse) 以将 confirmationResponse 作为第二个参数

我可以在第二个 lambda 表达式中使用第一个 lambda 表达式的 confirmationResponse 吗?最终代码应该是这样的

service.confirm(identity, id)
.map(confirmationResponse -> InternalToExternalResponse.mapToExternal(confirmationResponse))
.map(externalResponse-**>uriBuilder.buildAuthorizeUri(externalResponse,confirmationResponse ))**
.lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));

最佳答案

您可以组合这两个 lambda 表达式:

service.confirm(identity, id)
.map(confirmationResponse -> {
ExternalResponse externalResponse = InternalToExternalResponse.mapToExternal(confirmationResponse);
return uriBuilder.buildAuthorizeUri(externalResponse,confirmationResponse);})
.lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));

不过,我建议使用较短的 lambda 变量名称:

service.confirm(identity, id)
.map(cr -> {
ExternalResponse er = InternalToExternalResponse.mapToExternal(cr);
return uriBuilder.buildAuthorizeUri(er,cr);})
.lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));

关于java - 如何在不同的 lambda 表达式中使用 lambda 表达式中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56575880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com