我正在尝试使用Float
数据类型的最大大小验证和javax验证。这是例子
@NotNull
@Size(min = 5, max = 10)
public Float getPhone(){
}
但我收到的错误是我无法使用Float数据类型进行大小验证。任何想法?
答案 0 :(得分:3)
@Size
不适用于Float类型。引用约束的javadoc:
/**
* The annotated element size must be between the specified boundaries (included).
* <p/>
* Supported types are:
* <ul>
* <li>{@code CharSequence} (length of character sequence is evaluated)</li>
* <li>{@code Collection} (collection size is evaluated)</li>
* <li>{@code Map} (map size is evaluated)</li>
* <li>Array (array length is evaluated)</li>
* </ul>
* <p/>
* {@code null} elements are considered valid.
*
*/
所以这个约束实际上是关于字符串或集合的大小。您可以为float编写自己的验证器并通过xml注册 - 请参阅http://beanvalidation.org/1.1/spec/#xml-mapping-constraintdefinition
但是,我建议不要这样做,因为在您想要使用它的上下文中谈论“大小”是没有意义的。
您可以使用@Min
和@Max
,但由于存在舍入问题,并非所有提供程序都支持float数据类型。
看看你的例子,似乎你想存储一个电话号码。为什么你会选择一个浮动开始?