Рассмотрим список вещи и метод необязательно Resolve (вещь) . Я хочу составить на карту вещь s необязательно s и получить первое другое .
Очевидное решение - использовать вещи .stream (). Flatmap (this :: resolve) .findfirst () , но Flatmap требует, чтобы вы возвращали поток, а необязательный не имеет потока () Метод (или это Коллекция или предоставление метода для преобразования его или просмотра как коллекция ).
Лучшее, что я могу придумать, это:
Код: Выделить всё
things.stream()
.map(this::resolve)
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst();
Подробнее здесь: https://stackoverflow.com/questions/227 ... eamflatmap