我有一个springbok项目,在application.yml文件中,有一个值
account-number: 060018242251
在 Bean 中,我们有
@Value('${account-number}')
String account
此 account
变量被赋值为“6.0018242251E10”而不是“060018242251”,有什么问题以及如何处理?
最佳答案
在解析 YAML 文件时,相应的解析器(在您的情况下可能是 SnakeYAML)已经确定了数据类型。由于它对于 Integer 来说太大了,它会将其视为 Double。
当注入(inject)值时,Spring 意识到您想要一个 String,但只存在一个 Double Value。因此,将调用 toString()-方法,您会以上述符号接收它。
如果您希望在解析 YAML 时该值是一个字符串,您应该使用引号。
顺便说一句@Prashant 八进制符号不会影响 YAML(或 SnakeYAML),前导 0 会被简单地忽略。
关于java - 为什么 Spring @Value 注解的 String 变量得到的是 float 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57950824/