概述
问题:
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类型了,其内部帮你实现了强转。 原来,这还是一个经典面试题嘞
最后
以上就是平淡黑夜为你收集整理的Can not set double field cn.ac.iie.entity.UliInfo.latitude to null value的全部内容,希望文章能够帮你解决Can not set double field cn.ac.iie.entity.UliInfo.latitude to null value所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复