diff --git a/app/src/main/java/io/legado/app/utils/GsonExtensions.kt b/app/src/main/java/io/legado/app/utils/GsonExtensions.kt index b08d49893..6b8862f9e 100644 --- a/app/src/main/java/io/legado/app/utils/GsonExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/GsonExtensions.kt @@ -9,7 +9,6 @@ import java.io.InputStream import java.io.InputStreamReader import java.io.OutputStream import java.io.OutputStreamWriter -import java.lang.reflect.ParameterizedType import java.lang.reflect.Type import kotlin.math.ceil @@ -53,7 +52,10 @@ inline fun Gson.fromJsonArray(json: String?): Result> { if (json == null) { throw JsonSyntaxException("解析字符串为空") } - fromJson(json, ParameterizedTypeImpl(T::class.java)) as List + fromJson( + json, + TypeToken.getParameterized(List::class.java, T::class.java).type + ) as List } } @@ -73,7 +75,10 @@ inline fun Gson.fromJsonArray(inputStream: InputStream?): Result + fromJson( + reader, + TypeToken.getParameterized(List::class.java, T::class.java).type + ) as List } } @@ -94,14 +99,6 @@ fun Gson.writeToOutputStream(out: OutputStream, any: Any) { writer.close() } -class ParameterizedTypeImpl(private val clazz: Class<*>) : ParameterizedType { - override fun getRawType(): Type = List::class.java - - override fun getOwnerType(): Type? = null - - override fun getActualTypeArguments(): Array = arrayOf(clazz) -} - /** * */