【Exception处理】-报错:java.util.LinkedHashMap cannot be cast to ……;errorCode:5010000!

        异常出现场景代码如下:
       List<AssessmentDayVo> dayResultList = mobileService.queryDayWeight(LoginInfo.getDeptCode());
	    logger.info("【日货量】循环前集合:{}",JSON.toJSON(dayResultList));
	    for(int i=0; i<dayResultList.size();i++){
	    	        logger.info("【日货量】循环中:{}",JSON.toJSON(dayResultList.get(i)));
	    	        AssessmentDayVo assessmentDayEntity=dayResultList.get(i);
			provinceInWeight += Double.parseDouble(assessmentDayEntity.getProvinceInWeight());
			throughWeight += Double.parseDouble(assessmentDayEntity.getThroughWeight());
			transitWeight += Double.parseDouble(assessmentDayEntity.getTransitWeight());
			transProvinceWeight += Double.parseDouble(assessmentDayEntity.getTransProvinceWeight());
			double hourWeight = Double.parseDouble(assessmentDayEntity.getProvinceInWeight()) + Double.parseDouble(assessmentDayEntity.getThroughWeight()) 
							  + Double.parseDouble(assessmentDayEntity.getTransitWeight()) + Double.parseDouble(assessmentDayEntity.getTransProvinceWeight());
			dayTotalWeight = dayTotalWeight + hourWeight;		
			hourMap.put(Integer.parseInt(assessmentDayEntity.getHour()), hourWeight);
		}

标注红色部分为报错处,报错如下:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.ymdd.galaxy.report.api.vo.mobile.AssessmentDayVo

AssessmentDayVo实体类如下:

public class AssessmentDayVo implements Serializable{
	private static final long serialVersionUID = 1L;
	private String hour;
	private String provinceInWeight;
	private String transitWeight;
	private String throughWeight;
	private String transProvinceWeight;
        …省略get/set方法…

log日志如下:

【日货量】循环前集合:[{"hour":"00","provinceInWeight":"3.382","throughWeight":"2.494","transProvinceWeight":"9.159","transitWeight":"0.0"},{"hour":"01","provinceInWeight":"5.379","throughWeight":"0.324","transProvinceWeight":"10.516","transitWeight":"0.13"},{"hour":"02","provinceInWeight":"1.306","throughWeight":"0.165","transProvinceWeight":"2.751","transitWeight":"0.0"}……]

【日货量】循环中集合:{"hour":"00","provinceInWeight":"3.382","throughWeight":"2.494","transProvinceWeight":"9.159","transitWeight":"0.0"}

看看没问题,就是对象转对象,后来反复验证发现:

dayResultList.get(i)这个方法获取到的并不是实体类,而是Map,具体原因不知道(请大神留言指教)。

有了原因当时想到的法子是吧map转成json,然后把json转成相应的实体类,方法如下:

AssessmentDayVo assessmentDayEntity = JSON.parseObject(JSON.toJSONString(dayResultList.get(i)),AssessmentDayVo.class);

        完美解决!!!小白初来咋到,大神多多指教!!!


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值