¿Cómo puedo utilizar un objeto de una expresión lambda en una expresión lambda diferente

melad albahaca

Tengo este código

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

Ahora tengo que extender el uriBuilder.buildAuthorizeUri(externalResponse)tomar confirmationResponsecomo un segundo parámetro

¿Puedo usar el confirmationResponsede la primera expresión lambda dentro de la segunda expresión lambda? el código final debe ser similar

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

Puede pasar el confirmationResponseal siguiente lambda como resultado de éste. Ya que se necesita tanto, puede crear ya sea un objeto personalizado o el uso Pairde esta manera:

service.confirm(identity, id)
                .map(confirmationResponse -> new Pair<ConfirmationResponse, ExternalResponse>(confirmationResponse, InternalToExternalResponse.mapToExternal(confirmationResponse)))
                .map(result ->u riBuilder.buildAuthorizeUri(result.second, result.first ))
                .lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=196607&siteId=1
Recomendado
Clasificación