У нас есть список элементов SomeType, из которых мы хотели бы получить конкретный элемент, выполнить проверку этого элемента (фильтра) и, если критерии выполнены, затем извлечь конкретное поле типа String из элемента (map ), все в одном выражении
Соответствующие интерфейсы метода следующие. Все идет хорошо до последнего шага, где мы хотели бы отобразить результат фильтра Optional<SomeType>
в Optional<String>
. К сожалению, мы не можем определить синтаксис, ожидаемый вызовом карты
public Optional<String> transform(final List<SomeType> aList)
return getAnItemFromTheList(aList)
.filter(someFilterClass::anItemFulfillsCriteria)
.map(???use getAStringTypeFieldFromTheItem() here???);
private Optional<SomeType> getAnItemFromTheList(final List<SomeType> aList) {...
public boolean anItemFulfillsCriteria(final SomeType anItem) {... //in a separate class of filter methods
private Optional<String> getAStringTypeFieldFromTheItem(final SomeType anItem) {...