java.util.LinkedHashMap cannot be cast to

报错信息:
{
    "ErrorCode" : 2,
    "ErrorContent" : "java.util.LinkedHashMap cannot be cast to com.better517na.gwCommunicateJavaService.wordJiujiu.model.vo.PayVo",
    "ResponseTime" : 1455851510156
}
解决思路:
1、服务调用方 传参正确,调用方和服务提供方的对象model均未使用LinkedHashMap。
2、入参
public class RequestVo<T> {
    @NotNull
     private T body;
}
body是泛型。
3、调用方传入参数 RequestVo,提供方只是直接 PayVo payVo = requestVo.getBody() 了,这里出现了异常。

解决方案:
    将传入的参数转为PayVo即可。添加如下两行代码:

  // 将泛型body转json再转PayVo对象。
  PayVo payvo = GSON.fromJson(GSON.toJson(requestVo.getBody()), PayVo.class);
 requestVo.setBody(payvo);
后面再 PayVo payVo = requestVo.getBody()即正常了。


你可能感兴趣的:(泛型转换异常)