vavr验证者验证流

时间:2019-04-16 07:03:33

标签: java validation vavr

我有这样的代码:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

因此,如果您的validatorsList<Validation<List<String>, ScoreRequest>>,则对该函数应用此函数将返回Validation<Seq<String>, Seq<ScoreRequest>>,它看起来与您想要的完全一样。我让您找出将Seq转换回所需结构的方法。