将字符串转换带泛型属性的对象出错
背景
在使用 FastJson转换字符串为带泛型属性的对象,报错
cannot be cast to xxx(带泛型属性的类)
解决办法
1.先获取到解析对象的 泛型属性值,转成Json字符串 2.将此字符串再利用Json工具类转换为对象
举例
举例用的是FastJson,其他Json工具也可以这样做。 泛型类
public class NotifyHttpBO<T> { private String nonce; private String signature; private T msg; public String getNonce() { return nonce; } public void setNonce(String nonce) { this.nonce = nonce; } public String getSignature() { return signature; } public void setSignature(String signature) { this.signature = signature; } public T getMsg() { return msg; } public void setMsg(T msg) { this.msg = msg; } @Override public String toString() { return "NotifyHTTP [nonce=" + nonce + ", signature=" + signature + ", msg=" + msg + "]"; } }
获取泛型属性
NotifyHttpBO<OneNetDataMsg> notify = JSON.parseObject(body,NotifyHttpBO.class); String msgStr = JSON.toJSONString(notify.getMsg()); OneNetDataMsg msg = JSON.parseObject(msgStr,OneNetDataMsg.class);