Ух, так просто. Спасибо!

ли в Java элегантный и потоковый способ сказать «сопоставить этот необязательный параметр другому необязательному с вычисленным значением, если значение существует, иначе вернуть пустой необязательный параметр»?

Я думал о чем-то вроде:

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

Но это невозможно.

Решение, которое я нашел, несколько многословно и не похоже на потоковое:

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

Ответы на вопрос(1)

Решение Вопроса

Вам не нужноorElse пункт:

Optional<Float> amount = ...;
Optional<MonetaryAmount> myAmount =
    amount.map(theAmount -> FastMoney.of(theAmount, "EUR"));
 Marc von Renteln30 нояб. 2017 г., 13:25
Ух, так просто. Спасибо!

Ваш ответ на вопрос