2017-10-10 27 views
1

我看到注释@Size作为Spring控制器的限制。 我一直在寻找一个解释究竟是什么尺寸,我发现这一点:元素大小代表什么?

的字段或属性的大小进行评估,必须在指定的边界相匹配。如果字段或属性是字符串,则会评估字符串的大小。如果该字段或​​属性是一个集合,则会评估该集合的大小。如果该字段或​​属性是一个Map,则会评估该Map的大小。如果该字段或​​属性是一个数组,则会计算该数组的大小。使用可选的最大或最小元素之一来指定边界。

但是,我不清楚你如何计算字符串的大小。它里面有多少个字符?是字节数?有人知道吗?

回答

5

你不说,你发现的解释,但javax.validation.constraints.SizeJavadoc

The annotated element size must be between the specified boundaries (included). 
Supported types are: 

    CharSequence (length of character sequence is evaluated) 
    Collection (collection size is evaluated) 
    Map (map size is evaluated) 
    Array (array length is evaluated) 

    null elements are considered valid. 

注意StringCharSequence

+0

这将做到这一点。谢谢! – Yuval

1

它是字符串中的字符数。

@SizeJavadoc说:

The annotated element size must be between the specified boundaries (included). 
Supported types are: 

CharSequence (length of character sequence is evaluated) 
Collection (collection size is evaluated) 
Map (map size is evaluated) 
Array (array length is evaluated) 

null elements are considered valid. 

一个StringCharSequence,如果我们看一下length()方法在此界面中的评论,我们看到:

长度是多少序列中的16位字符。

有关@Size和其他验证程序的更多详细信息,请参阅http://beanvalidation.org/