请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Gson.fromJson为什么需要传入Class类型

老师好, 你在视频中提到Gson.fromJson需要传入Class类型是因为返回值T被类型擦除成object, 所以不知道返回什么具体对象.
可是后面不是说可以通过字节码里面附加的签名信息拿到返回对象具体类型吗?
这两个有矛盾吗,还是说Gson.fromJson只是没有去通过签名信息去获取返回值而已?
谢谢.

正在回答 回答被采纳积分+3

2回答

bennyhuo 2020-04-18 19:59:09

反射得解析签名信息,而且只有在调用的时候才有这个信息,而fromJson在定义的时候是没有这个信息的。

0 回复 有任何疑惑可以回复我~
  • 老师的意思是,要传进去才行么,就好比 TypeToken,在 new 的时候传进去的泛型实际的类型,这样才能获取到。
    Retrofit 的 call 也是传进去了泛型的实际类型
    回复 有任何疑惑可以回复我~ 2022-02-03 18:00:20
  • 对,要传进去,typetoken也是一样的道理
    回复 有任何疑惑可以回复我~ 2022-02-03 18:48:58
提问者 2021冲冲冲 2020-04-18 10:40:43

https://img1.sycdn.imooc.com//szimg/5e9a682d099ef12828701818.jpg

看了下源码, 是因为获取泛型签名信息还是需要通过具体的类名, 去获取这个类的具体携带的泛型参数, 是这样吗?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信