Gson 使用new TypeToken<List<String>>(){}.getType() 為什麽有 {}?
阿新 • • 發佈:2018-08-31
而已 內部類 希望 真的 指南 不能 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() 為什麽有 {}?