首页 > 解决方案 > 如何用我的流中的空列表替换任何 null 实例?

问题描述

在我下面的方法中,变量n可以为 null,如果它为 null,我想返回一个空列表,例如List.of. 如何修改以下方法以确保如果找到空值,List则返回空值并且不被删除?我尝试使用filter我在下面注释掉的内容,但这只会删除找到 null 的任何实例。

    private List<Account> getNames(MetaData metadata){
    return metadata.getNames()
          .stream()
          .map(n -> createAccount(n, metadata.getType()))
          //.filter(n -> n.getFinalName() != null)
          .collect(Collectors.toList());
    } 

private Account createAccount(String n, Metadata metadata){...}

标签: javajava-stream

解决方案


您可以使用三元运算符

return metadata.getNames()
      .stream()
      .map(n -> n!=null ? createAccount(n, metadata.getType()) : /* else do something */)
      .collect(Collectors.toList());

推荐阅读