作者:心情爱心_634 | 来源:互联网 | 2022-10-15 16:20
给定的断言由于错误而失败
找不到为类GenericType生成的JsonAdapter构造函数
我如何从物化类型的正确类型T
的Moshi
?
该GenericType
类型标注有@JsonClass(generateAdapter = true)
使用科特林代码生成的莫希仅使用Moshi.Builder().build()
。
我可以ParameterizedType
手动生成
Types.newParameterizedType(GenericType::class.java, String::class.java)
在哪里GenericType::class.java
给出T:class.java
。但是我不知道如何获取String
类型参数来泛化该方法。
inline fun adapter() =
moshi.adapter(type())
inline fun type() =
T::class.java
assert(adapter>() != null)
请注意,该适配器可用于任何GenericType
,但不适用于GenericType::class.java
没有通用信息的实际类。
因此genericType
,只要我知道以下内容,就可以找到适配器G
:
inline fun genericType() =
newParameterizedType(GenericType::class.java, G::class.java)
这G
就是我希望找到的type()
,因为T::class.java
只有GenericType::class.java
在那里。