【问题标题】:Java 8: Getting a property from a List of a ListJava 8:从列表的列表中获取属性
【发布时间】:2019-11-18 02:13:15
【问题描述】:

我是 Java 8 的新手,我想从联系人列表中获取第一个不为空的电话,形成人员列表,但我得到了不兼容的类型 错误

return segadors
                .stream()
                .map(c -> c.getSegadorMedium().stream().map(cm -> Objects.nonNull(cm.getPhoneSegador())))
                .findFirst()
                .orElse(null);

【问题讨论】:

  • 可以分享一下你的手机类和你的列表初始化吗?

标签: java java-8 functional-programming stream java-stream


【解决方案1】:
  return segadors
            .stream()
            .flatMap(c -> c.getSegadorMedium().stream().filter(cm -> Objects.nonNull(cm.getPhoneSegador())))
            .findFirst()
            .orElse(null);

Objects.nonNull 支票中需要filter;另外,由于您要返回Stream,因此在此之前您需要flatMap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    相关资源
    最近更新 更多