问题场景
A项目调用B项目提供的接口返回一个Objec对象,然后把这个Object对象转化为实际的对象,然后再对这个对象处理时出现转化异常
问题重现
具体写法如下:
- 调用B项目提供的接口
Object data = feignService.getDataSourceByIds(idss).getData();
- 强转
List<DataSource> list = (List<DataSource>) data;
通过这种方式进行强转并不能转化成想要的List对象,实际上list里面
保存的时key value形式的LinkedHashMap 不能转化为DataSource对象。导致出现强转问题。
解决方案
- 使用阿里json解析工具
Object data = feignService.getDataSourceByIds(idss).getData();
String json = JSONObject.toJSONString(data);
return JSONObject.parseObject(json, new TypeReference<List<DataSource>>() {
});