3月8
1、前端封装JSON值,后台需要List<实体类>接收

Map map = jsonObject.getInnerMap();
List<RecommendDTO> recommendDTOlist = (List<RecommendDTO>) map.get("xxx");

2、进行forearch循环的时候报错

recommendDTOlist .forEach((item)->{})

3、从redis中获取数据后进行遍历
List<RecommendDTO> recommendDTOlist = redisUtil.get(defaultCacheKey);
for (RecommendDTO recommendDTO : defaultRecommendList) {

}

报错信息:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.heckjj.apps.modules.smartpush.dto.RecommendDTO

4、打断点调试查看发现里面封装的是两个Map 而不是实体类而是个LinkedHashMap

5、解决方法

ObjectMapper mapper = new ObjectMapper();
List<RecommendDTO> recommendDTOlist = (List<RecommendDTO>) map.get("xxx");
List<RecommendDTO> recommendDTOlist = mapper.convertValue(list1, new TypeReference<List<RecommendDTO>>() { });

记住引入包路径是下面这两个

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]