1. 程式人生 > >Gson 使用new TypeToken<List<String>>(){}.getType() 為什麽有 {}?

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

而已 內部類 希望 真的 指南 不能 article 匿名內部類 作用

前言:使用 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嗎?Gson使用指南(一)
  • 你真的會用Gson嗎?Gson使用指南(二)
  • 你真的會用Gson嗎?Gson使用指南(三)
  • 你真的會用Gson嗎?Gson使用指南(四)
  • Java中的匿名內部類及其使用技巧:https://blog.csdn.net/tick_tock97/article/details/76944566

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