Recuperar um campo de objeto a partir de uma lista de itens com expressão lambda um mapa-filter

hammerfest:

Temos uma lista de itens SomeType a partir do qual gostaríamos de recuperar um item em particular, executar uma verificação sobre esse item (filtro), e se os critérios for cumprida, em seguida, recuperar um campo de tipo String especial do item (mapa), todos em uma expressão

As interfaces do método em causa são as seguintes. Tudo está indo bem até a última etapa, onde gostaríamos de mapear o resultado do filtro Optional<SomeType>em Optional<String>. Infelizmente não somos capazes de pregar a sintaxe esperada pelo chamado mapa

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) {...
Eugene:

Bem, se eu entendi corretamente que getAStringTypeFieldFromTheItemirá retornar uma Optional<String>, assim que você vai acabar com Optional<Optional<String>>após o map; assim, é só usar flatMapem vez de mappara conseguir que Optional<String>, como resultado

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=204279&siteId=1
Recomendado
Clasificación