在javax库中使用Float字段时如何使用@Size验证?

在javax库中使用Float字段时如何使用@Size验证?,java,validation,hibernate-validator,Java,Validation,Hibernate Validator,我正在尝试对Floatdatatype和javax验证使用最大大小验证。以下是示例 @NotNull @Size(min = 5, max = 10) public Float getPhone(){ } 但我得到了一个错误,我不能对Float数据类型使用大小验证。有什么想法吗?@Size不适用于浮点类型。引用约束的javadocs: /** * The annotated element size must be between the specified boundaries (inc

我正在尝试对
Float
datatype和javax验证使用最大大小验证。以下是示例

@NotNull
@Size(min = 5, max = 10)
public Float getPhone(){

}

但我得到了一个错误,我不能对Float数据类型使用大小验证。有什么想法吗?

@Size
不适用于浮点类型。引用约束的javadocs:

/**
 * 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.
 *
 */ 
/**
*带注释的图元大小必须介于指定的边界(包括)之间。
*

*支持的类型包括: *

    *
  • {@code CharSequence}(计算字符序列的长度)
  • *
  • {@code Collection}(计算集合大小)
  • *
  • {@code Map}(映射大小已计算)
  • *
  • 数组(计算数组长度)
  • *
*

*{@code null}元素被认为是有效的。 * */

所以这个约束实际上是关于字符串或集合的大小。您可以为float编写自己的验证器,并通过xml注册-请参阅

但是,我建议您不要使用它,因为在您想要使用它的上下文中谈论“大小”是没有意义的

您可以使用
@Min
@Max
,但由于舍入问题,并非所有提供程序都支持浮点数据类型


看看您的示例,您似乎想要存储一个电话号码。为什么要选择一个浮点数作为开始?

@Size
不适用于浮点数类型。引用约束的javadocs:

/**
 * 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.
 *
 */ 
/**
*带注释的图元大小必须介于指定的边界(包括)之间。
*

*支持的类型包括: *

    *
  • {@code CharSequence}(计算字符序列的长度)
  • *
  • {@code Collection}(计算集合大小)
  • *
  • {@code Map}(映射大小已计算)
  • *
  • 数组(计算数组长度)
  • *
*

*{@code null}元素被认为是有效的。 * */

所以这个约束实际上是关于字符串或集合的大小。您可以为float编写自己的验证器,并通过xml注册-请参阅

但是,我建议您不要使用它,因为在您想要使用它的上下文中谈论“大小”是没有意义的

您可以使用
@Min
@Max
,但由于舍入问题,并非所有提供程序都支持浮点数据类型


看看您的示例,您似乎想要存储一个电话号码。为什么要选择一个浮点数作为开始?

@Size
不适用于浮点数类型。引用约束的javadocs:

/**
 * 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.
 *
 */ 
/**
*带注释的图元大小必须介于指定的边界(包括)之间。
*

*支持的类型包括: *

    *
  • {@code CharSequence}(计算字符序列的长度)
  • *
  • {@code Collection}(计算集合大小)
  • *
  • {@code Map}(映射大小已计算)
  • *
  • 数组(计算数组长度)
  • *
*

*{@code null}元素被认为是有效的。 * */

所以这个约束实际上是关于字符串或集合的大小。您可以为float编写自己的验证器,并通过xml注册-请参阅

但是,我建议您不要使用它,因为在您想要使用它的上下文中谈论“大小”是没有意义的

您可以使用
@Min
@Max
,但由于舍入问题,并非所有提供程序都支持浮点数据类型


看看您的示例,您似乎想要存储一个电话号码。为什么要选择一个浮点数作为开始?

@Size
不适用于浮点数类型。引用约束的javadocs:

/**
 * 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.
 *
 */ 
/**
*带注释的图元大小必须介于指定的边界(包括)之间。
*

*支持的类型包括: *

    *
  • {@code CharSequence}(计算字符序列的长度)
  • *
  • {@code Collection}(计算集合大小)
  • *
  • {@code Map}(映射大小已计算)
  • *
  • 数组(计算数组长度)
  • *
*

*{@code null}元素被认为是有效的。 * */

所以这个约束实际上是关于字符串或集合的大小。您可以为float编写自己的验证器,并通过xml注册-请参阅

但是,我建议您不要使用它,因为在您想要使用它的上下文中谈论“大小”是没有意义的

您可以使用
@Min
@Max
,但由于舍入问题,并非所有提供程序都支持浮点数据类型


看看您的示例,您似乎想要存储一个电话号码。你为什么要从一开始就选择浮动呢?

谢谢@Hardy。我知道,为了存储电话号码,我不应该使用float数据类型。但我正在开发一个数据库设计不是由我完成的系统。在db中,phone num有
十进制(10,0)
数据类型。现在,我从java代码生成了我的bean。(动态地从数据库中删除)。所以它是十进制的浮点映射(以db为单位)。有什么解决方案吗?哪种数据类型更适合phone num?即使是Double也不会假设@size validation。如果数据库列的类型是decimal,那么Java属性的类型应该是decimal。SQL decimal和java.math.BigDecimal都将数字表示为数字序列,而float和double则是“不精确的”,因为它们将数字表示为m×2ⁿ.谢谢@Hardy。我知道,为了存储电话号码,我不应该使用float数据类型。但我正在开发一个数据库设计不是由我完成的系统。在db中,phone num有
十进制(10,0)
数据类型。现在,我从java代码生成了我的bean。(动态地从数据库中删除)。所以它是十进制的浮点映射(以db为单位)。有什么解决方案吗?哪种数据类型更适合phone num?即使是Double也不会假设@size validation。如果数据库列的类型是decimal,那么Java属性应该是