java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Double

继上篇博客 仍然是对大量表数据进行处理时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
待续。。。

猜你喜欢

转载自blog.csdn.net/Beatingworldline/article/details/113561045