vavr 验证者的验证流
vavr Validation stream of validators
我有这样的代码:
return validators
.stream()
.flatMap(v -> v.validate(scoreRequest).stream())
.collect(toList());
每个验证器 return 有一个 List<String>
错误,如果列表为空则表示请求有效。
下面我要介绍一下vavr.Validator。每个 validator.validate 的新 return 类型现在是 Validation<List<String>,ScoreRequest>
如何像以前一样使用流合并每个验证器的输出?
您可以使用 sequence 来做到这一点。
因此,如果您的 validators
是一个 List<Validation<List<String>, ScoreRequest>>
,将此函数应用于它会 return 一个 Validation<Seq<String>, Seq<ScoreRequest>>
,这看起来与您想要的完全一样。我让您弄清楚将 Seq
转换回您想要的任何结构的管道。
我有这样的代码:
return validators
.stream()
.flatMap(v -> v.validate(scoreRequest).stream())
.collect(toList());
每个验证器 return 有一个 List<String>
错误,如果列表为空则表示请求有效。
下面我要介绍一下vavr.Validator。每个 validator.validate 的新 return 类型现在是 Validation<List<String>,ScoreRequest>
如何像以前一样使用流合并每个验证器的输出?
您可以使用 sequence 来做到这一点。
因此,如果您的 validators
是一个 List<Validation<List<String>, ScoreRequest>>
,将此函数应用于它会 return 一个 Validation<Seq<String>, Seq<ScoreRequest>>
,这看起来与您想要的完全一样。我让您弄清楚将 Seq
转换回您想要的任何结构的管道。