Используйте метод flatMap
, который, если присутствует, заменит Optional
другим Optional
, используя прилагаемый Function
.
Еслизначение присутствует, возвращает результат применения заданной Optional
несущей функции отображения к значению, в противном случае возвращается пустое Optional
.
Затем вы можете использовать orElse
, который, если присутствует, вернет значение или значение по умолчанию, которое вы указали.
Если значение присутствует, возвращает значение, в противном случае возвращается other
.
Здесь я также превратил вызов getFromSomethingElse
в ссылку на метод, который будет соответствовать Function
, требуемому flatMap
.
public T blah() {
return getFromSomething().flatMap(this::getFromSomethingElse).orElse(DEFAULT_VALUE);
}