情况是这样:我将Student对象转成json存到数据库里,然后再从数据库里把json字符串
取出来还原成Student对象时就发现有GPA这个属性的值变成了null了,并且该属性由原来的Double类型变成了Integer类型
public static void save(Json synJsonStr){
//这里的synJsonStr就是从数据库取到的json字符串,debug的时候看到了json里的值是没有问题的
DataSynObj dso = JsonUtil.toBean(synJsonStr, DataSynObj.class);
List insertDataList = dso.getInsertDataList();
for (Object object : insertDataList) {
MorphDynaBean oldBean = (MorphDynaBean) object;
}
}
//这是数据同步类
public class SynObj{
private List insertList;
private List updateList;
private List deleteList;
public List<Object> getInsertDataList() {
return insertDataList;
}
public void setInsertDataList(List<Object> insertDataList) {
this.insertDataList = insertDataList;
}
public List<Object> getUpdateDataList() {
return updateDataList;
}
public void setUpdateDataList(List<Object> updateDataList) {
this.updateDataList = updateDataList;
}
public List<Object> getDeleteDataList() {
return deleteDataList;
}
public void setDeleteDataList(List<Object> deleteDataList) {
this.deleteDataList = deleteDataList;
}
}
//这是学生实体类
public class Student{
private Double GPA;
public Double getGPA() {
return GPA;
}
public void setGPA(Double addressKilometers) {
this.GPA = GPA;
}
}
问题就在"MorphDynaBean oldBean = (MorphDynaBean) object;"这一步,转换的时候GPA的类型就变成了Integer,赋值也变成了null
还有个表现就是:我在本机测试没有问题,在另一台机器上测试就会出现这个bug,jdk版本都是1.7