【问题标题】:Bean Validation: Does @Digits validator support Double?Bean 验证:@Digits 验证器是否支持 Double?
【发布时间】:2013-12-08 13:11:40
【问题描述】:

在 Bean Validation 规范(JSR 303JSR 349 版本)和 docs 中,都没有提及 @Digits 对 Double 或 Float 类型的支持。它只说它支持以下类型:

  • 大十进制
  • 大整数
  • 字符序列
  • byte、short、int、long 及其各自的包装类型

但是,我针对实体中的 Double 字段对其进行了多次测试,发现它运行良好!

它有什么我看不到的缺点吗?是否不鼓励将其与 Double 一起使用?

我还发现文档明确指出 @Min@Max 不支持 Double 和 Float。但是,关于@Digits

【问题讨论】:

  • '我对实体中的 Double 字段进行了多次测试,发现它运行良好!'你的意思是它不工作(异常)或工作但不正常?
  • @Loc 完美运行

标签: java hibernate validation bean-validation hibernate-validator


【解决方案1】:

Hibernate Validator 实际上支持任何Number 类型的@Digits,因此也支持Double/double。这是通过从给定数字的字符串表示创建BigDecimal 来完成的。由于规范没有强制要求这种行为,因此它可能不适用于其他 Bean 验证提供程序。

【讨论】:

    【解决方案2】:

    Double 是浮点数,不能很好地描述十进制数。当发生舍入错误并且小数位数可能发生变化时。

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 2020-07-12
      • 2019-12-10
      相关资源
      最近更新 更多