如何对集合类型的元素应用验证

How to apply validation to elements of a collection type

我正在使用 spring,因此 javax.validation,所以这就是这个问题的背景。

假设我想验证一个列表的元素只包含 4 位数字。

我要编码:

@Min(1000)
@Max(9999)
List<Integer> numbers;

但验证爆炸,抱怨 @Min@Max 不能用于验证 List。好的,有道理。

我可以在自定义对象列表上使用 @Valid,例如:

@Valid // validate each element
List<My4DigitNumberClass> numbers;

@MyCustom4DigitValidation
class My4DigitNumberClass {
    Integer number;
}

但我只想使用 Integer(以及最终其他盒装基元、字符串等),例如:

@ValidateElements({ @Min(1000), @Max(9999) })
List<Integer> numbers;

我可以在不创建任何自定义 类 或自定义验证注释的情况下执行此操作吗?

注释类型,使用此语法:

List<@Min(1000) @Max(9999) Integer> numbers;