Я доволен ответом на любом языке, но в конечном итоге хочу получить ответ на Java. (Java 8+ в порядке. Не ограничивается Java 8. Я пытался исправить теги.)
Если у меня есть два значения Optional<Integer>
, как я могу кратко вычислить эквивалент a || b
, что означает: a
, если он определен; иначе b
, если он определен; иначе empty()
?
Optional<Integer> a = ...;
Optional<Integer> b = ...;
Optional<Integer> aOrB = a || b; // How to write this in Java 8+?
Я знаю, что могу написать a.orElse(12)
, но что, если значение по умолчанию также Optional
?
Очевидно, что в С# оператор ??
делает то, что я хочу.