我正在尝试设置一个 Moshi 适配器,以便我可以获得作为通用传递的任何模型。到目前为止,我在从 T
generic 获取类时遇到问题,IDE 说 Cannot use T as a reified type parameter。请改用类
。
有什么解决办法吗?
val model = getModel<SimpleModel>()
private fun <T> getModel() : T? {
val moshi = Moshi.Builder().build()
val adapter = moshi.adapter<T>(T::class.java)
return adapter.fromJson("{\"name\": \"this_guy\"}")
}
谢谢!
最佳答案
使用 private inline fun <reified T> getModel(): T
作为您的函数声明。
将类型参数声明为具体化允许您访问其类对象。
关于generics - 从通用类型获取 Moshi 适配器 - Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52327492/