2017-10-10 50 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/