java.math.BigDecimal cannot be cast to java.lang.String
2018-01-29 18:13
721 查看
使用mybatis查询数据库的时候,遇到一个问题。需要查询的数据既包含decimal类型、也包含String类型。使用Map< String,String >接收报错。错误提示如下:
上述提示:类型转化异常。
二、网上解决方法如下:
【温馨提示】 网上解决方法提示使用
或者
等方法,测试了都不可以。
三、【分析了一下】既然double类型无法转化成String类型,那么我们借用万能的类型Object来接收。将mybatis的返回值由Map< String,String >改成Mao< String,Object >。网上之所以说可以,是因为它们一开始定义返回的类型是:Map< String,Object >。这点特地出来跟大家说一下
2.0 然后由Object类型转化成String类型很简单,toString一下就可以了
自此,那么问题就解决了,希望对你们有帮助。一开始最大的bug就是定义了返回值是Map< String, String >。特地提醒一下
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
List<Map<String,String>> myUserEveryDecive = myuseService.myUserEveryDecive1(dateTime,commercialCode); for (Map<String, String> map : myUserEveryDecive) { String m = map.get("moneys"); System.out.println(m); }
上述提示:类型转化异常。
二、网上解决方法如下:
【温馨提示】 网上解决方法提示使用
Integer.parseInt(ob.toString());
或者
map.get("moneys").toString();
等方法,测试了都不可以。
三、【分析了一下】既然double类型无法转化成String类型,那么我们借用万能的类型Object来接收。将mybatis的返回值由Map< String,String >改成Mao< String,Object >。网上之所以说可以,是因为它们一开始定义返回的类型是:Map< String,Object >。这点特地出来跟大家说一下
//返回值是: /*List<Map<String, Object>>*/ List<Map<String, Object>> myUserEveryDecive(Date startDate, Date endDate, String commercialCode);
2.0 然后由Object类型转化成String类型很简单,toString一下就可以了
List<Map<String,Object>> myUserEveryDecive = myuseService.myUserEveryDecive(dateTime,commercialCode); for (Map<String, Object> map : myUserEveryDecive) { String item_name = map.get("item_name").toString(); if(map.get("moneys")!=null){ Object moneysObject= map.get("moneys"); String moneysString = moneysObject.toString(); returnUseList.add(item_name+"--"+moneysString); //这是转化成double类型的,如果不请求的,百度一下Object转化成doublie、BigDecimal 类型,很简单的 BigDecimal ret = null; ret = new BigDecimal(map.get("moneys").toString()); System.out.println(ret); }else{ returnUseList.add(item_name+"--"+"0"); } }
自此,那么问题就解决了,希望对你们有帮助。一开始最大的bug就是定义了返回值是Map< String, String >。特地提醒一下
相关文章推荐
- 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
- java.math.BigDecimal cannot be cast to java.lang.String解决方法
- java.math.BigDecimal cannot be cast to java.lang.String
- 类型转换错误java.math.BigDecimal cannot be cast to java.lang.String
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
- 类型转换错误java.math.BigDecimal cannot be cast to java.lang.String
- java.math.BigDecimal cannot be cast to java.lang.String
- 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
- java.math.BigDecimal cannot be cast to java.lang.String问题解决方案
- java.math.BigDecimal cannot be cast to java.lang.String
- 类型转换错误java.math.BigDecimal cannot be cast to java.lang.String
- java.math.BigDecimal cannot be cast to java.lang.String错误
- 【Java】 java.math.BigDecimal cannot be cast to java.lang.String
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
- ERROR [FileOperation] java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
- java.math.BigDecimal cannot be cast to java.lang.String ----解决方案
- 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