我有这样的代码:
return validators
.stream()
.flatMap(v -> v.validate(scoreRequest).stream())
.collect(toList());
每个验证器返回一个List<String>
错误,如果列表为空,则表示该请求有效。
现在,我要介绍vavr.Validator。每个validator.validate的新返回类型现在为Validation<List<String>,ScoreRequest>
如何像以前一样使用流来组合每个验证器的输出?
答案 0 :(得分:1)
您可以使用sequence来做到这一点。
因此,如果您的validators
是List<Validation<List<String>, ScoreRequest>>
,则对该函数应用此函数将返回Validation<Seq<String>, Seq<ScoreRequest>>
,它看起来与您想要的完全一样。我让您找出将Seq
转换回所需结构的方法。