失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java.util.LinkedHashMap cannot be cast to

java.util.LinkedHashMap cannot be cast to

时间:2023-05-19 07:29:39

相关推荐

java.util.LinkedHashMap cannot be cast to

异常描述及复现

FdcpRes对象里有一个List属性。首先把FdcpRes对象变为JSON字符串,然后在把JSON字符串变为FdcpRes对象,此时再获取List属性并且强转,就会报错。

报错为:java.util.LinkedHashMap cannot be cast to

解决办法

从json字符串转换为FdcpRes的对象中已经没有了泛型,所以可以把这个FdcpRes里的data字段变为字符串重新反序列化

package json2objerror;import untils.JsonUtils;import java.util.ArrayList;import java.util.List;/*** @author chaird* @create -04-17 13:11*/public class MainOk {public static void main(String[] args) {FdcpRes res = buildRes();// 创建JSON字符串String s = JsonUtils.objectToJson(res);FdcpRes fdcpRes = JsonUtils.jsonToPojo(s, FdcpRes.class);//把List对象里重新变为Json字符串,再重新把Json字符串变为List对象就Ok了s = JsonUtils.objectToJson(fdcpRes.getData());List<Ecodata> data = JsonUtils.jsonToList(s, Ecodata.class);for (Ecodata datum : data) {System.out.println(datum);}}public static FdcpRes buildRes(){// 创建两个对象List<Ecodata> ecodataList = new ArrayList<>();Ecodata e1 = new Ecodata();e1.setId(1);e1.setValue(1D);ecodataList.add(e1);Ecodata e2 = new Ecodata();e2.setId(2);e2.setValue(2D);ecodataList.add(e2);// 封装结果FdcpRes res = new FdcpRes();res.setCode(200);res.setData(ecodataList);return res;}}

源码下载

/cbeann/Demooo/tree/master/java-demoo/src/main/java/json2objerror

如果觉得《java.util.LinkedHashMap cannot be cast to》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。