0

我有这样的代码:

  return validators
            .stream()
            .flatMap(v -> v.validate(scoreRequest).stream())
            .collect(toList());

每个验证器都会返回一个List<String>错误,如果列表为空,则表示请求有效。

现在我要介绍vavr.Validator。现在每个 validator.validate 的新返回类型是Validation<List<String>,ScoreRequest>

如何像以前一样使用流组合每个验证器的输出?

4

1 回答 1

1

您可以使用序列来做到这一点。

因此,如果您validators是 a List<Validation<List<String>, ScoreRequest>>,则将此函数应用于它将返回 a Validation<Seq<String>, Seq<ScoreRequest>>,它看起来与您想要的完全一样。我让你弄清楚将Seqs 转换回你想要的任何结构的管道。

于 2019-04-19T18:17:43.233 回答