我有一个用于清单类的自定义反序列化器,用于改装库。
GsonBuilder()
.registerTypeAdapter(List::class.java, PagingDeserializer())
.create()
反序列化器是
class PagingDeserializer : JsonDeserializer<List<*>> {
override fun deserialize(json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext?): List<*> {
val type = (typeOfT as ParameterizedType).actualTypeArguments[0]
val result = mutableListOf<Any>()
.
.//custom deserializing code
.
return result.toList()
}
它工作正常,但我也想写一些测试用例。
测试代码:
val gson=
GsonBuilder()
.registerTypeAdapter(List::class.java,PagingDeserializer())
.create()
val manufacturesList:List<Manufacture> =gson.fromJson<List<Manufacture>>(manufactureJson,List::class.java)
但是在测试中我遇到了这个错误
java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
为什么在测试中不起作用?