日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...

發布時間:2025/3/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

####問題描述

* java 解析多層含有泛型對象的json數據獲取不到泛型類型

* 如果將泛型改成實際的類型就能正常解析

* 如果不改成實際的類型泛型數據被解析成com.google.gson.internal.LinkedTreeMap

* 如果強制轉換報錯:java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.example.vizax.with.bean.BaseBean

####下面是具體的實體類和json數據

**java通用數據模型,含有泛型T**

```java

public class PackageModel {

public T result;

public String message;

public int code;

}

```

**json數據**

```json

{

"code": 0,

"message": "操作成功",

"result": {

"accessToken": "17049387C5E8D331CF8B5B2A9805880E",

"userId": "241520",

"account": "18688888888",

"sex": "1",

"userName": "號有",

"nickName": "測試",

"cityName": "天津 河北區",

"iconUrl": "https://www.it399.com",

"hasDevice": "1",

"email": "444445462@qq.com"

}

}

```

####如果直接使用傳遞過去的泛型類型解析,解析不出result

**解析代碼**

```java

Gson gson = new Gson();

PackageModel eventBusModel2 = gson.fromJson(response.body(),PackageModel.class);

```

**解析結果,是map而不是對象**

![圖片.png](https://upload-images.jianshu.io/upload_images/2704327-cd8427c43f4a40c6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####原因:泛型擦除機制

**泛型只在編譯期間起作用,運行期間是獲取不到泛型信息的。即使我們在運行期間用反射去獲取泛型類型,也是無效的。所以不要想著去獲取泛型類型了**

####既然無法獲取泛型類型,而gson解析又一定要傳遞具體類型,怎么辦呢?

* 1.可以通過自定義轉換器構造函數傳遞具體的類型。**比如ok-go源碼里面對于json數據的轉換,就是通過構造函數傳遞具體的數據類型的**

![圖片.png](https://upload-images.jianshu.io/upload_images/2704327-1c0d4e1704a4150a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/800)

* 2.可以通過反射獲取方法返回值具體類型

**首先定義請求方法的返回值為具體類型,調用的時候還是傳遞泛型**

![圖片.png](https://upload-images.jianshu.io/upload_images/2704327-4195f9dd223ef509.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

**解析的時候利用反射獲取此方法的返回值類型,那么解析json數據的時候就知道具體的類型了**

```java

/**

* 得到返回實體類型

* @return

*/

public Type getType() {

//獲取線程運行棧信息

StackTraceElement stack[] = (new Throwable()).getStackTrace();

//獲取請求被發起的地方的方法返回值

StackTraceElement s = stack[3];

String key = s.getMethodName();

final Type type = requestMethods.get(key);

return type;

}

```

**注意getType的調用地方不同,stack[3]的值也不同,根據實際情況修改下標值**

* 3.其它黑科技

####總結:gson解析一定要傳具體的type,傳遞泛型T是獲取不到具體類型的

-------------

[個人網站](https://www.it399.com)

[個人博客](https://www.it399.com/blog/index)

-------------

> 本文同步發布在 [在線助手](https://www.it399.com) ,**轉載請注明來自 [在線助手博客](https://www.it399.com/blog/index) 頻道【[java android解析多層含有泛型對象的json數據獲取不到泛型類型解析失敗解決辦法](https://www.it399.com/blog/web/201806141400)]】,原文鏈接**:**https://www.it399.com/blog/web/201806141400**

總結

以上是生活随笔為你收集整理的android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本熟妇成熟毛茸茸 | 伊人久久青青 | 很黄的性视频 | 午夜精品免费 | 欧美精选一区二区 | 钻石午夜影院 | 色婷婷18 | 黄色三级在线 | 精品一区二三区 | 国产精品久久影院 | 亚州激情视频 | 国产黄色大片在线观看 | 91免费版视频 | 不卡av电影在线 | 手机在线看片日韩 | 中文字幕一区二区三区精华液 | 中国国语农村大片 | 欧美日韩中文在线观看 | 夜色一区二区三区 | 免费观看日批视频 | 亚洲三级在线免费观看 | 91麻豆精品| 欧美日韩免费看 | 在线观看欧美亚洲 | 91精品综合久久久久久 | 黄色日比视频 | 天天综合日日夜夜 | 先锋资源中文字幕 | 东方av在线免费观看 | 国产黄色免费观看 | 国产资源av| 中文亚洲av片在线观看 | 欧美激情一二三区 | 久久av网站 | 秋霞7777鲁丝伊人久久影院 | 日本午夜精品理论片a级app发布 | 性大片潘金莲裸体 | www.jizzcom | 国产在线播放一区二区 | 自拍日韩亚洲一区在线 | 福利视频第一页 | 无码视频在线观看 | 日日操av| 香蕉视频2020 | 久久r这里只有精品 | 精品深夜av无码一区二区老年 | 日本精品免费视频 | www.国产欧美 | 黄色小视频大全 | 肉丝美足丝袜一区二区三区四 | 制服av在线 | 在线观看成人网 | 秋霞三区 | 久久久无码18禁高潮喷水 | heyzo朝桐光一区二区 | 亚洲自拍天堂 | 亚洲永久精品一区二区 | 国产女女调教女同 | 国产精品久久国产精麻豆96堂 | 国产色影院 | 一级做a爰| 青青草在线免费视频 | 西西人体做爰大胆gogo直播 | 精品日韩制服无码久久久久久 | 久久久亚洲精品无码 | 成人免费午夜 | 国产精品久久久久毛片大屁完整版 | 天天天天天天天干 | www.国产免费 | 探花视频在线观看 | 五月的婷婷 | 黑人操亚洲女人 | 一级少妇女片 | 夜夜操免费视频 | 亚洲福利久久 | 成人av网站在线 | 国产美女无遮挡网站 | 韩国毛片网站 | 欧美性猛交xxxx乱大交俱乐部 | 精品日本视频 | 蜜乳av懂色av粉嫩av | 美日韩在线 | 亚洲色图图片区 | 蜜桃无码一区二区三区 | 色网导航站| 日韩 欧美 精品 | 色老头一区二区 | 中文字幕 视频一区 | 成人高清视频免费观看 | 国产精品视频a | 在线天堂www在线国语对白 | 在线观看免费高清 | 欧美一区二区三区成人精品 | 亚洲精品www久久久久久 | 99视频在线观看视频 | 国产精品xxx视频 | 国产精品丝袜在线观看 | 日本美女久久久 | 激情小视频 |