在任何一种情况下都可以选择执行操作
Optional to perform an action in either cases
我有办法
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return chooseClient(entity)
.confirmPayment(identity, entity,confirmationRequest);
}
我需要做一点修改,如果 confirmationRequest
是 null
然后调用 confirmPayment(identity, entity);
我怎么说
Optional.ofNullable(confirmationRequest)
然后 chooseClient(entity)
然后 ifPresent
调用 confirmPayment(identity, entity,confirmationRequest);
ifNotPresent
调用 confirmPayment(identity, entity);
confirmPayment
的签名
public Single<SignatureOrder> confirmPayment(Identity identity, PaymentEntity entity)
public Single<SignatureOrder> confirmPayment(Identity identity, PaymentEntity entity, ConfirmationRequest confirmationRequest)
您可以这样做:
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return confirmationRequest != null ?
chooseClient(entity).confirmPayment(identity, entity, confirmationRequest) :
chooseClient(entity).confirmPayment(identity, entity);
}
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return Optional.ofNullable(confirmationRequest)
.map(cr -> chooseClient(entity).confirmPayment(identity, entity, cr)
.orElseGet(() -> chooseClient(entity).confirmPayment(identity, entity);
}
映射到 null returns 空,通过使用 orElseGet 如果它映射到空,它将调用此 lambda
我有办法
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return chooseClient(entity)
.confirmPayment(identity, entity,confirmationRequest);
}
我需要做一点修改,如果 confirmationRequest
是 null
然后调用 confirmPayment(identity, entity);
我怎么说
Optional.ofNullable(confirmationRequest)
然后 chooseClient(entity)
然后 ifPresent
调用 confirmPayment(identity, entity,confirmationRequest);
ifNotPresent
调用 confirmPayment(identity, entity);
confirmPayment
public Single<SignatureOrder> confirmPayment(Identity identity, PaymentEntity entity)
public Single<SignatureOrder> confirmPayment(Identity identity, PaymentEntity entity, ConfirmationRequest confirmationRequest)
您可以这样做:
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return confirmationRequest != null ?
chooseClient(entity).confirmPayment(identity, entity, confirmationRequest) :
chooseClient(entity).confirmPayment(identity, entity);
}
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return Optional.ofNullable(confirmationRequest)
.map(cr -> chooseClient(entity).confirmPayment(identity, entity, cr)
.orElseGet(() -> chooseClient(entity).confirmPayment(identity, entity);
}
映射到 null returns 空,通过使用 orElseGet 如果它映射到空,它将调用此 lambda