码迷,mamicode.com
首页 > 其他好文 > 详细

Gson 使用new TypeToken<List<String>>(){}.getType() 为什么有 {}?

时间:2018-08-31 00:26:03      阅读:2857      评论:0      收藏:0      [点我收藏+]

标签:类对象   article   csdn   ring   其它   targe   内部类   lock   ref   

前言:使用 gson 时,不明白为什么有这种写法:new TypeToken<List<String>>(){}.getType(),所以来解惑。最终发现其实就是自己的 java 基础没学好。。。。

1、new TypeToken<List<String>>(){}.getType() 为什么有 {}?

  为什么这样就可以new一个不能访问的类对象呢。按照理解,不再同一个包下(Gson下的类),时不能直接new的。但是神奇的是只要加一个{}就可以了。

  其实是这样的这里new的并不是TypeToken对象,而是在此处定义了一个匿名类。该匿名类继承自TypeToken。并对该匿名类进行定义{} 里面什么都没有写。因为我们只需要用到父类的一个public方法而已。 

2、为什么Gson 的TypeToken 个构造是protect而非public?

  TypeToken类的作用就是希望你直接使用 new TypeToken<List<String>>(){}(而不是new TypeToken())来规避JAVA的类型擦除

 

参考其它文章,可得知Gson 到底如何使用?如何进一步封装?

 

Gson 使用new TypeToken<List<String>>(){}.getType() 为什么有 {}?

标签:类对象   article   csdn   ring   其它   targe   内部类   lock   ref   

原文地址:https://www.cnblogs.com/yuxiaole/p/9563320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!