Can not set double field cn.ac.iie.entity.UliInfo.latitude to null value

问题:

java.lang.IllegalArgumentException: Can not set double field cn.ac.iie.entity.UliInfo.latitude to null value
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) ~[na:1.8.0_211]
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) ~[na:1.8.0_211]
    at sun.reflect.UnsafeDoubleFieldAccessorImpl.set(UnsafeDoubleFieldAccessorImpl.java:80) ~[na:1.8.0_211]
    at java.lang.reflect.Field.set(Field.java:764) ~[na:1.8.0_211]
    at org.hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:52) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:680) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]
    at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:144) ~[hibernate-core-5.4.17.Final.jar:5.4.17.Final]
 

错误位置:

如下,实体类中的double longitude有NULL值

private double longitude;

private double latitude;

  longitude,latitude 表中这俩字段的类型为double,第一次因为有double类型的字段有NULL值所以报了上面的错,就把double改成了String,没想到一切正常 错误消失,但总觉得 这样太不应该了。经请教和百度得出,应该是把“double”的longitude,latitude改成“Double”,问题解决,这样才让人觉得妥当了。
  百度网友这样说:“Double是java定义的类,而double是预定义数据类型(8种中的一种),Double就好比是对double类型的封装,内置很多方法可以实现String到double的转换,以及获取各种double类型的属性值(MAX_VALUE、SIZE等等)。基于上述两点,如果你在普通的定义一个浮点类型的数据,两者都可以,但是Double是类所以其对象是可以为NULL的,而double定义的不能为NULL,如果你要将一些数字字符串,那么就应该使用Double类型了,其内部帮你实现了强转。
  原来,这还是一个经典面试题嘞

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值