Mar*_*ijk 7 java bean-validation
是否可以手动添加约束违规?
例如:
// validate customer (using validation annotations)
Set<ConstraintViolation<Customer>> violations = validator.validate(customer);
if (someSpecialCase) {
violations.add(..)
}
Run Code Online (Sandbox Code Playgroud)
问题是该add方法接受ConstraintViolation接口,但javax.validation包中不包含可以使用的实现器.
任何的想法?
简短的回答是:“不,没有办法手动添加约束违规”。
详细一点。正如你所说,所有涉及的类都是接口。如果您确实想这样做,您可以实现自定义ConstraintViolationImpl。但是,我想知道您的实际用例是什么?为什么要在没有验证的情况下添加约束违规?正如答案/sf/answers/1660901861/所建议的那样,您始终可以通过类级别自定义约束。作为自定义ConstraintValidator实现中isValid的一部分,您将获得一个ConstraintValidatorContext,它将允许您添加其他约束违规。