今天在開發的時候遇到了一個問題,在此記錄一下,問題的大概意思就是類型不一致不能進行強轉
代碼如下:
rolf.setFuncd((String) rece.get("FUN_CD"));//強轉 rolf.setFunid((String) rece.get("FUN_ID")); //強轉 rolf.setFunnm((String) rece.get("FUN_NM")); //強轉
因爲我第二段的代碼Orc數據庫的字段類型是number,而實體的類型是String
所以我在執行的時候報錯,java.math.BigDecimal cannot be cast to java.lang.String
將第二段代碼改成如下格式.toString()錯誤解除,原因是:
rolf.setFuncd((String) rece.get("FUN_CD"));//強轉 rolf.setFunid(rece.get("FUN_ID").toString()); //解釋如下 rolf.setFunnm((String) rece.get("FUN_NM"));
toString是Object類的方法,所有類都從Object類繼承。如果你定義的類沒有覆蓋toString方法,則對象在調用toString方法時用的是Object類toString方法