Encadeamento do mapa Java opcional e orElse (estilo if-else)

Existe uma maneira elegante e de streaming em Java para dizer "mapeie este opcional para outro opcional com um valor calculado se o valor existir, senão retorne um opcional vazio"?

Eu pensei em algo como:

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

Mas isso não é possível.

A solução que eu encontrei é um pouco detalhada e não é semelhante a streaming:

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

questionAnswers(1)

yourAnswerToTheQuestion