【发布时间】:2020-04-11 16:06:04
【问题描述】:
我想编写一个函数,使用 Gson 将某个 JSON String 反序列化为某个类型的对象,并返回该对象。
此类型可能是标准 Kotlin 类型(例如 Boolean、String 等)、我的应用程序类型之一(例如 User)或泛型类型(例如 HashMap<Int, Boolean>)。
这个函数的一个非常简化的版本如下:
fun <T> get(jsonString: String, typeOfObj: /*type goes here. T???, typeOf???, etc*/): T? {
return gson?.fromJson(jsonString, typeOfObj)
}
我想将它传递给 string 和 type 我希望通过这种方式从反序列化中返回:
val result: HashMap<Int, Boolean> = get(myString, Map<Int, Boolean>)
我尝试过使用 inline 和 reified、KType 等,但我仍然卡住了,因为我对 Kotlin 的类型系统和反射 API 没有经验。
允许我以这种方式编写和调用此函数的参数类型是什么?
【问题讨论】: