1. 程式人生 > >關於 java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String

關於 java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String

今天遇到了這個異常,其實是自己經驗欠缺所致。我是通過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()轉換。