[英]Deserializing Generic Type with GSON
我已經看過這個問題了:
但是我的用例不同,我需要的只是將json轉換為T
,而不是List<T>
或類似的東西。這是我在代碼中需要的:
val type: Type = object : TypeToken<T>() {}.type
接着
Gson().fromJson<T>(json, type)
但這不起作用。 它返回LinkedHashMap或類似的東西,但不返回T表示的類。當我將T替換為實際的類類型時,它可以工作,但對於T則不起作用。 有人可以給我一些建議嗎? 謝謝
只需使用Gson().fromJson(json, T.class);
無需TypeToken
我找到了解決方案:僅使用T::class.java
是不夠的,它給了我編譯錯誤:
不能將T用作化類型參數。 使用班級代替
因此,我不得不找到解決方案,以解決它。 我要做的是從此更改函數名稱:
fun <T> myFunction
對此:
inline fun <reified T> myFunction
之后,不會顯示任何編譯錯誤,並且代碼可以在此處提供有關此主題的更多信息: 在Kotlin中實例化通用數組
反序列化看起來像這樣:
Gson().fromJson(json, T::class.java)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.