@Parcelizedata class Children<T: Parcelable>( @Json(name = "type") val type: String,@Json(name = "data") val data: T): Parcelable
我如何能够使用moshi反序列化/映射正确的对象类型?
@Parcelizedata class Comment<T : Parcelable>( @Json(name = "replIEs") val replIEs: Children<T>,@Json(name = "count") val count: Int,@Json(name = "children") val childs: List<String>) : Parcelable
或者像这样的实例怎么样?我应该注意Comment可以采用一个通用的Comment注释,从而产生一个循环.
解决方法 在moshIExtensions中添加以下内联并尝试相应地使用它们.inline fun <reifIEd E> moshi.listadapter(elementType: Type = E::class.java): JsonAdapter<List<E>> { return adapter(ListType<E>(elementType))}inline fun <reifIEd K,reifIEd V> moshi.mapAdapter( keyType: Type = K::class.java,valueType: Type = V::class.java): JsonAdapter<Map<K,V>> { return adapter(mapType<K,V>(keyType,valueType))}inline fun <reifIEd E> ListType(elementType: Type = E::class.java): Type { return Types.newParameterizedType(List::class.java,elementType)}inline fun <reifIEd K,reifIEd V> mapType( keyType: Type = K::class.java,valueType: Type = V::class.java): Type { return Types.newParameterizedType(Map::class.java,keyType,valueType)}总结
以上是内存溢出为你收集整理的android – 如何使用moshi反序列化泛型类成员?全部内容,希望文章能够帮你解决android – 如何使用moshi反序列化泛型类成员?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)