2016-12-16 44 views
0

我無法理解Google的GSON api的fromJson方法的TypeToken。下面的代碼是非常複雜的,瞭解我...google gson fromjson()TypeToken

 Gson gson = new Gson(); 
     ArrayList<ID_Name_Address> al = new ArrayList<ID_Name_Address>(); 
     al = gson.fromJson(json, new TypeToken<List<ID_Name_Address>>(){}.getType()); 

究竟是發生在這裏:new TypeToken<List<ID_Name_Address>>(){}.getType()

這是一個匿名類?在這個代碼上投下一些光。

回答

2

TypeToken由於具有完全指定的泛型超類的類通過反射使該數據可用,因此在運行時獲取有關泛型的信息是一種技巧。

的GSON用戶手冊裏有關於序列化/反序列化在這裏仿製藥的一段:https://github.com/google/gson/blob/master/UserGuide.md#TOC-Serializing-and-Deserializing-Generic-Types

具體回答你的問題,它會創建能夠捕捉超數據TypeToken仿製藥的匿名對象。然後通過泛型提取數據並將其作爲Type實例與getType()打包,以避免由於上述匿名類造成的內存泄漏。

+0

您提供的鏈接是有用的。 – JPG