继上篇博客 仍然是对大量表数据进行处理时JVM抛出异常:
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Double
下意识以为自己又写错了拆装箱、或是记错了包装类。
仔细查看报错信息后发现数据库字段的数据类型与预期不一样。
保险起见验证了下该表对应字段数据类型:
private static String getType(Object a) {
return a.getClass().toString();
}
System.out.println(getType(listname.get(0).get(key)));
System.out.println(getType(listarea.get(0).get(key)));
System.out.println(getType(list.get(i).get("DEFECT_AREA")));
结果如图:
借助数据库查询工具DbVis也查到了该表字段:
确认是自己疏忽搞错了数据类型,修改Map的包装类为BigDecimal
待续。。。