Encadenamiento de Java Mapa opcional y orElse (if-else-style)

¿Hay una manera elegante y de transmisión en Java para decir "asignar este Opcional a otro Opcional con un valor calculado si el valor existe, de lo contrario devolver un Opcional vacío"?

Pensé en algo como:

Optional<Float> amount = ...;
Optional<MonetaryAmount> myAmount = amount
    .map(theAmount -> FastMoney.of(theAmount, "EUR")).orElse(Optional.empty());

Pero esto no es posible.

La solución que se me ocurrió es un tanto detallada y no similar a la transmisión:

Optional<Float> amount = ...;
Optional<MonetaryAmount> myAmount = amount.isPresent() ?
          Optional.of(FastMoney.of(amount.get(), "EUR")) : Optional.empty();

Respuestas a la pregunta(1)

Su respuesta a la pregunta