【发布时间】:2021-08-25 01:39:55
【问题描述】:
我在编译同样是泛型的序列化数据类时遇到问题。我对 Android 和 Kotlin 很陌生,但我是一位经验丰富的 iOS/Swift 开发人员(不要反对我)。
我正在尝试围绕 GraphQL 响应设置一个通用数据类包装器,它可以返回数据字段中的 T 通用或错误字段中的错误。
import kotlinx.serialization.Serializable
@Serializable
data class GraphQLResponse<T:Serializable> (
val errors : List<ErrorResponse>? = null,
val data : Map<String, T>? = null
) {
@Serializable
data class Location(
val line: Int? = 0,
val column: Int? = 0,
val sourceName: String? = null
)
@Serializable
data class ErrorResponse(
val locations: List<Location>? = null,
val errorType: String? = null,
val message: String? = null
)
}
编译这个我得到以下错误:
java.lang.AssertionError: Couldn't load KotlinClass from /Users/brett/Development/Company/android/app/build/tmp/kotlin-classes/debug/com/company/company/network/GraphQLResponse.class; it may happen because class doesn't have valid Kotlin annotations
还有一堆关于反射的警告。
我想用泛型和序列化做的事情可能吗?我需要编写自己的反序列化方法吗?
任何帮助和建议将不胜感激。
【问题讨论】:
标签: android kotlin serialization