Generics 我可以在kotlin数据类中创建泛型类型吗?
我有一个后端,它总是返回一个带有一些数据的“success”,就像在json字段中一样,该字段将被命名为success并包含数据。或者它将返回json格式的错误对象。 所以我希望有一些BaseResponse,所以当我使用它时,我可以做一些类似BaseResponse的事情,这样成功就会映射为Person对象 所以我想这样做: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
@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”。还有别的吗?