Java 8:从List of List中获取属性

5

我是Java 8的新手,我想从一个人员列表中获取联系人列表中第一个非空的电话号码,但是我遇到了不兼容类型的错误。

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

1
请问您能分享一下您的电话类和列表初始化吗? - Samuel Philipp
1个回答

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

Objects.nonNull 检查中需要一个 filter;另外由于你正在返回一个 Stream,所以需要在其前面加上一个 flatMap


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接