Java 列表的 Bean 验证大小?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/44108805/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Bean validation size of a List?
提问by membersound
How can I set a bean validation constraint that a List
should at minimum contain 1 and at maximum contain 10 elements?
如何设置List
至少应包含 1 个元素且最多包含 10 个元素的 bean 验证约束?
None of the following works:
以下均无效:
@Min(1)
@Max(10)
@Size(min=1, max=10)
private List<String> list;
采纳答案by ByeBye
I created simple class:
我创建了简单的类:
public class Mock {
@Size(min=1, max=3)
private List<String> strings;
public List<String> getStrings() {
return strings;
}
public void set(List<String> strings) {
this.strings = strings;
}
}
And test:
并测试:
Mock mock = new Mock();
mock.setStrings(Collections.emptyList());
final Set<ConstraintViolation<Mock>> violations1 = Validation.buildDefaultValidatorFactory().getValidator().validate(mock);
assertFalse(violations1.isEmpty());
mock.setStrings(Arrays.asList("A", "B", "C", "D"));
final Set<ConstraintViolation<Mock>> violations2 = Validation.buildDefaultValidatorFactory().getValidator().validate(mock);
assertFalse(violations2.isEmpty());
It seems that @Size
annotation is working well. It comes from javax.validation.constraints.Size
似乎@Size
注释运行良好。它来自javax.validation.constraints.Size
回答by Meet Shah
You can use @NotEmpty to check for empty list. This make sure there is at least one item in list.
您可以使用 @NotEmpty 检查空列表。这确保列表中至少有一项。