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

Generics 我可以在kotlin数据类中创建泛型类型吗?,generics,kotlin,parcelable,data-class,Generics,Kotlin,Parcelable,Data Class,我有一个后端,它总是返回一个带有一些数据的“success”,就像在json字段中一样,该字段将被命名为success并包含数据。或者它将返回json格式的错误对象。 所以我希望有一些BaseResponse,所以当我使用它时,我可以做一些类似BaseResponse的事情,这样成功就会映射为Person对象 所以我想这样做: @Parcelize data class BaseResponse<T>( val success: T? = null ) : Parcelab

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

所以我想这样做:

@Parcelize
data class BaseResponse<T>(
     val success: T? = null
) : Parcelable
@Parcelize
data class BaseResponse<T: Parcelable>(val success: T? = null) : Parcelable
@Parcelize
数据类基本响应(
val成功:T?=null
):可包裹

但它表示,Parcelize不直接支持该类型。我有什么办法可以做到这一点吗?还是我需要写一些定制的东西?调用etc时,使用Regent和Gson作为序列化程序。

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

@Parcelize
data class BaseResponse<T>(
     val success: T? = null
) : Parcelable
@Parcelize
data class BaseResponse<T: Parcelable>(val success: T? = null) : Parcelable
@Parcelize
数据类BaseResponse(val成功:T?=null):可包裹

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

@Parcelize
data class BaseResponse<T>(
     val success: T? = null
) : Parcelable
@Parcelize
data class BaseResponse<T: Parcelable>(val success: T? = null) : Parcelable
@Parcelize
数据类BaseResponse(val成功:T?=null):可包裹

这是否回答了您的问题?它似乎没有考虑到我需要的是数据类。这回答了你的问题吗?它似乎没有考虑到我需要的数据类。这不会编译时出现错误“非静态类型变量t不能从静态上下文引用”。此解决方案不适用于我。抛出错误“无法从静态上下文引用非静态类型变量T”。还有其他问题吗?这不会编译时出现错误“非静态类型变量T不能从静态上下文引用”。此解决方案不适用于我。抛出错误“无法从静态上下文引用非静态类型变量T”。还有别的吗?