kunfei 3 lat temu
rodzic
commit
2064bfc27d

+ 8 - 11
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.InputStreamReader
 import java.io.OutputStream
 import java.io.OutputStream
 import java.io.OutputStreamWriter
 import java.io.OutputStreamWriter
-import java.lang.reflect.ParameterizedType
 import java.lang.reflect.Type
 import java.lang.reflect.Type
 import kotlin.math.ceil
 import kotlin.math.ceil
 
 
@@ -53,7 +52,10 @@ inline fun <reified T> Gson.fromJsonArray(json: String?): Result<List<T>> {
         if (json == null) {
         if (json == null) {
             throw JsonSyntaxException("解析字符串为空")
             throw JsonSyntaxException("解析字符串为空")
         }
         }
-        fromJson(json, ParameterizedTypeImpl(T::class.java)) as List<T>
+        fromJson(
+            json,
+            TypeToken.getParameterized(List::class.java, T::class.java).type
+        ) as List<T>
     }
     }
 }
 }
 
 
@@ -73,7 +75,10 @@ inline fun <reified T> Gson.fromJsonArray(inputStream: InputStream?): Result<Lis
             throw JsonSyntaxException("解析流为空")
             throw JsonSyntaxException("解析流为空")
         }
         }
         val reader = InputStreamReader(inputStream)
         val reader = InputStreamReader(inputStream)
-        fromJson(reader, ParameterizedTypeImpl(T::class.java)) as List<T>
+        fromJson(
+            reader,
+            TypeToken.getParameterized(List::class.java, T::class.java).type
+        ) as List<T>
     }
     }
 }
 }
 
 
@@ -94,14 +99,6 @@ fun Gson.writeToOutputStream(out: OutputStream, any: Any) {
     writer.close()
     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<Type> = arrayOf(clazz)
-}
-
 /**
 /**
  *
  *
  */
  */