這個問題實在是不知道怎么取標題異常如下:Exceptioninthread"main"java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMapcannotbecasttoXXX我舉例說明:已知有一個User類,包含了一些簡單的屬性publicclassUser{privateStringuserName;privateStringgender;//getset方法省略}然后我有一個專門用于數(shù)據(jù)傳輸?shù)膉son包裝類publicclassJsonMessage{privateIntegercode;privateStringmsg;privateTdata;//getset方法省略}然后我有一個主方法publicstaticvoidmain(String[]args){//有一個待序列化的json字符串StringjsonStr="{'code':123,'msg':'test','data':{'userName':'baofeidyz','gender':'male'}}";//然后使用Gson序列化Gsongson=newGson();JsonMessagemessage=gson.fromJson(jsonStr,JsonMessage.class);//然后在這里我嘗試獲取data中的數(shù)據(jù),就報//Exceptioninthread"main"java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMapcannotbecasttoUser}可是當我不使用泛型的時候就是OK的:我這里有一個新的json包裝類publicclassJsonMessage2{privateIntegercode;privateStringmsg;privateUserdata;//getset方法省略}然后我又新建了一個新的main方法:publicstaticvoidmain(String[]args){//還是那個待序列化的json字符串StringjsonStr="{'code':123,'msg':'test','data':{'userName':'baofeidyz','gender':'male'}}";//然后使用Gson序列化Gsongson=newGson();//這里換成了新的包裝類JsonMessage2message=gson.fromJson(jsonStr,JsonMessage2.class);//然后就成功獲取到了數(shù)據(jù)}代碼是我在segmentfault網(wǎng)頁現(xiàn)敲的,但是問題是和我實際問題一樣。個人覺得主要是我對泛型和Gson的序列化方式理解有問題,所以想請教一下各位,感謝!
Gson(泛型)如何“動態(tài)”反序列化類屬性ClassCastException
牛魔王的故事
2019-05-23 10:59:35