Использование необязательного Java 8 с Stream :: FlatmapJAVA

Программисты JAVA общаются здесь
Anonymous
Использование необязательного Java 8 с Stream :: Flatmap

Сообщение Anonymous »

Новая рамка потока Java 8 и друзья создают очень краткий код Java, но я наткнулся на, казалось бы, кажущуюся ситуацию, которая сложно сделать кратко. < /p>
Рассмотрим список вещи и метод необязательно 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

Вернуться в «JAVA»