Результат этого кода - то, что я хочу:
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)
........
}
Но второй результат, который я называю с классом, отличается от первого?Я думаю, что параметр не передается в класс.Можете ли вы дать мне рекомендацию?
Спасибо