我正在尝试设置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允许您访问其类对象。