我正在尝试设置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\"}")
}

谢谢!

最佳答案

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

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

10-08 02:52