我想收集x个违规次数,下面的代码片段对一个违规次数有效。我如何修改它来重复同样的过程来处理x次违章?CustomError
是由 of
2 String
值作为参考。
private static Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Request>> violations =
validator.validate(Request);
CustomError customError =
CustomError.of(
violations.iterator().next().getPropertyPath().toString(),
violations.iterator().next().getMessage());
List<CustomError> errors = Collections.singletonList(customError);
我想你需要迭代所有的违规行为并创建自定义错误。
下面是代码示例。
...
public static class Error {
private final String field;
private final String message;
public Error(final String field, final String message) {
this.field = field;
this.message = message;
}
public String getField() {
return field;
}
public String getMessage() {
return message;
}
}
public Collection<Error> validate(Request request) {
var validator = Validation.buildDefaultValidatorFactory().getValidator();
var violations = validator.validate(request);
return violations
.stream()
.map(v -> new Error(v.getPropertyPath().toString(), v.getMessage()))
.collect(Collectors.toList());
}
...