Java 8:从列表的列表中获取属性

时间:2019-07-08 14:23:48

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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