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);
完美解决!!!小白初来咋到,大神多多指教!!!