【发布时间】:2019-01-24 03:40:17
【问题描述】:
这段代码的结果是我想要的:
override fun onResponse(call:Call<MainResp<ItemMaterial>>,response:Response<MainResp<ItemMaterial>>){
val arawjson: String = Gson().toJson(response.body())
val dataType = object : TypeToken<MainResp<ItemMaterial>>() {}.type
val mainResp: MainResp<ItemMaterial> = Gson().fromJson<MainResp<ItemMaterial>>(arawjson, dataType)
........
}
但是当我把它变成简单的类时,我可以使用对象数据类型参数访问每个函数。
class Convert<T>{
//fungsi umum untuk konversi gson sesuai dengan output datatype sebagai parameter yakni T
fun convertRespByType(response: Response<MainResp<T>>): MainResp<T> {
val arawjson: String = Gson().toJson(response.body())
val dataType = object : TypeToken<MainResp<T>>() {}.type
val mainResp: MainResp<T> = Gson().fromJson<MainResp<T>>(arawjson, dataType)
return mainResp
}
}
并称之为:
override fun onResponse(call:Call<MainResp<ItemMaterial>>,response:Response<MainResp<ItemMaterial>>){
val aconvert : Convert <ItemMaterial> = Convert()
val mainResp : MainResp<ItemMaterial> = aconvert.convertRespByType(response)
........
}
但是我在课堂上调用的第二个结果与第一个不同? 我认为参数没有传递给类。能给个推荐吗?
谢谢
【问题讨论】: