0

在Bean驗證規範(版本號爲JSR 303JSR 349)和docs中,都沒有提及有關@Digits支持Double或Float類型的任何內容。它只是說,它支持以下幾種類型:Bean驗證:@Digits驗證器是否支持Do​​uble?

  • 的BigDecimal
  • 的BigInteger
  • 的CharSequence
  • 字節,short,int和長,和他們各自的包裝類型

不過,我測試它在我的實體中與Double字段相遇很多次,我發現它運行良好!

它有什麼缺點我看不到?是否不願意與Double一起使用它?

此外我發現文檔明確指出@Min@Max不支持Double和Float。但是,關於@Digits

+0

'我在我的實體中對Double字段進行了多次測試,發現它工作正常!'你的意思是它不起作用(例外)或工作,但不正確? – Loc

+0

@Loc它完美的作品 – fujy

回答

1

Hibernate Validator實際上支持@Digits的任何Number類型,因此也支持Double/double。這是通過從給定數字的字符串表示中創建一個BigDecimal來完成的。由於這種行爲不是由規範強制的,它可能不適用於其他Bean驗證提供程序。

1

不是很明確Double是浮點數,不能很好地描述十進制數。發生舍入誤差時,小數位數可能會改變。