关于 java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String

时间:2022-08-20 15:50:19

今天遇到了这个异常,其实是自己经验欠缺所致。我是通过mybatis查询到数据库传过来的主键,是一个32位的char类型。

代码:

//查询总账表的该组织总账记录,包括该条记录的主键id、账户余额
DzzZzb zzbInfo = null;
Map map = (Map) IbatisSQL.selectOne("df.getZzbOrganid", parameter);
String zzid = (String)map.get("ZZID");

结果就报了标题处的异常。

查询发现,问题是出在强转上,只要改成:

String zzid = map.get("ZZID").toString();

就可以解决。因为BigDecimal不能强制转换成 String类型,要用toString()转换。