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

Mik*_*sen 1 generics parcelable kotlin data-class

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

所以我想这样做:

@Parcelize
data class BaseResponse<T>(
     val success: T? = null
) : Parcelable
Run Code Online (Sandbox Code Playgroud)

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

92A*_*anC 7

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

@Parcelize
data class BaseResponse<T: Parcelable>(val success: T? = null) : Parcelable
Run Code Online (Sandbox Code Playgroud)

  • 编译时不会出现错误“无法从静态上下文引用非静态类型变量 T” (4认同)