代码之家  ›  专栏  ›  技术社区  ›  hammerfest

从具有一个映射筛选器lambda表达式的项列表中检索对象字段

  •  3
  • hammerfest  · 技术社区  · 7 年前

    我们有一个SomeType项的列表,我们想从中检索一个特定的项,对该项执行检查(过滤器),如果满足条件,那么从项(映射)中检索一个特定的字符串类型字段,所有这些都在一个表达式中

    Optional<SomeType> 进入之内 Optional<String> . 不幸的是,我们无法确定map调用所期望的语法

    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) {...
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   Eugene    7 年前

    如果我理解正确的话 getAStringTypeFieldFromTheItem Optional<String> ,这样你就会 Optional<Optional<String>> 之后 map flatMap 而不是 为了得到那个 可选<字符串> 因此