我可以在 kotlin 数据 class 中创建泛型类型吗?

Can I create a generic type in a kotlin data class?

我有一个后端总是 return 带有一些数据的 "success",因为在 json 字段中字段将被命名为 success 并在其中包含数据。或者它将 return 一个 json 格式的错误对象。 所以我想要某种 BaseResponse,所以当我使用它时,我可以做类似 BaseResponse 的事情,这样成功将被映射为一个 Person 对象。

所以我想这样做:

@Parcelize
data class BaseResponse<T>(
     val success: T? = null
) : Parcelable

但是它说 Parcelize 不直接支持 Type。有什么办法可以做到这一点吗?或者我需要写一些自定义的东西吗?使用 Retrofit 和 Gson 作为序列化器调用调用等。

您可以通过要求 T 成为 Parcelable 的实现来做到这一点,如下所示:

@Parcelize
data class BaseResponse<T: Parcelable>(val success: T? = null) : Parcelable