如何在我的流中用空列表替换任何 null 实例?

How can I replace any instances of null with an empty List in my stream?

在我下面的方法中,变量 n 可以为空,如果它为空,我想 return 一个空列表,例如 List.of。我如何修改以下方法以确保如果找到 null,则空 List 被 returned 而不是删除?我尝试使用我在下面注释掉的 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){...}

你可以使用三元运算符

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