报错信息大致为:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.xxx.xxxx.entity.xxxx。
打断点调试,发现 得到的值属于LinkedHashMap类型,而不是实体类类型。
此时应该进行类型的转换,具体操作如下(仅为代码片段)——
//直接进行此种类型转换则会报文中标题的异常,应进行相应的处理
//DocNo docNo = (DocNo) parameterMap.get("docNo");
//处理如下
Object docNoObj = parameterMap.get("docNo");
ObjectMapper mapper=new ObjectMapper();
DocNo docNo = mapper.convertValue(docNoObj, DocNo.class);
如此处理之后则能够获得我们需要的实体类。还有一种方式是将docNoObj转换为josn格式,再转成相应的实体类格式。
对于ObjectMapper的使用可参考:
https://blog.youkuaiyun.com/chen_pt/article/details/77336264
本文解决了一个常见的Java编程问题,即如何正确地从LinkedHashMap转换到特定的实体类。通过使用ObjectMapper,文章提供了详细的代码示例,展示了如何避免ClassCastException异常,并给出了另一种将对象转换为JSON再重构为实体类的方法。
2088

被折叠的 条评论
为什么被折叠?



