解决 java.util.LinkedHashMap cannot be cast to xxx 的问题
问题描述
远程调用服务接口,获取 response 返回数据,接收的时候使用了强制转换类型,导致报了错误。
目的
需要将接收的结果 json 字符串转换成需要的类型,我这里需要转换成 map 集合:
// 远程调用接口 返回 Response
R r = wareFeignService.getSkuHasStock(skuIdList);
// 获取 data 对象再转成 json 字符串
Object data = r.get("data");
String jsonString = JSON.toJSONString(data);
// TypeReference 获取泛型类型信息
TypeReference<List<SkuHasStockTo>> typeReference = new TypeReference<List<SkuHasStockTo>>() {};
// 转换成 list 集合
List<SkuHasStockTo> stockTos = JSON.parseObject(jsonString, typeReference);
// 转换成 map 集合
stockMap = stockTos.stream().collect(Collectors.toMap(SkuHasStockTo::getSkuId, SkuHasStockTo::getHasStock));

浙公网安备 33010602011771号