java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xxx(实体类)

问题场景

A项目调用B项目提供的接口返回一个Objec对象,然后把这个Object对象转化为实际的对象,然后再对这个对象处理时出现转化异常

问题重现

具体写法如下:

  1. 调用B项目提供的接口
    Object data = feignService.getDataSourceByIds(idss).getData();
  2. 强转
    List list = (List) data;
    通过这种方式进行强转并不能转化成想要的List对象,实际上list里面
    保存的时key value形式的LinkedHashMap 不能转化为DataSource对象。导致出现强转问题。

解决方案

  1. 使用阿里json解析工具
Object data = feignService.getDataSourceByIds(idss).getData();
String json = JSONObject.toJSONString(data);
return JSONObject.parseObject(json, new TypeReference<List<DataSource>>() {
});

你可能感兴趣的:(java,se,spring,boot)