从泛型类型获取 Moshi 适配器 - Kotlin

Jos*_*rez 2 generics kotlin moshi

我正在尝试设置一个 Moshi 适配器,以便我可以获得我作为通用传递的任何模型。到目前为止,我在从T泛型获取类时遇到了问题,IDE 说Cannot use T as a reified type parameter. Use a class instead

任何想法如何解决这个问题?

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\"}")
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Dom*_* G. 6

使用private inline fun <reified T> getModel(): T为您的函数声明。

将类型参数声明为 reified 允许您访问其类对象。