Api Kotlin中的通用基响应模型

Api Kotlin中的通用基响应模型,api,kotlin,generics,Api,Kotlin,Generics,以下是我的json回复: { "requestResponse": { "status": 1, "result": true, "msg": "Success" }, "userId": 5504 } 下面是我的基本回答类: class BaseResponses<T>{ latei

以下是我的json回复:

{
    "requestResponse": {
        "status": 1,
        "result": true,
        "msg": "Success"
    },
    "userId": 5504
}
下面是我的基本回答类:

class BaseResponses<T>{
    lateinit var requestResponse: RequestResponse
}
以下为实施情况:

   @POST(ApiUrls.CREATE_USER)
    fun createUser(@Body body: CreateUser): Single<BaseResponses<User>>
@POST(apirls.CREATE\u用户)
有趣的createUser(@Body-Body:createUser):单身
我的问题是如何访问基类中的User类型的T将非常感谢您的帮助


谢谢

您不需要遗传类型-您需要继承属性

data class BaseResponses { // Remove T, it's doing nothing
    lateinit var requestResponse: RequestResponse
}

// Extend base class to inherit common `requestResponse` field
data class User(val userId:Int) : BaseResponses()

// User now will contain requestResponse object
@POST(ApiUrls.CREATE_USER)
fun createUser(@Body body: CreateUser): Single<User>
dataclassbaseresponses{//T,它什么也没做
lateinit var requestResponse:requestResponse
}
//扩展基类以继承公共'requestResponse'字段
数据类用户(val userId:Int):BaseResponses()
//用户现在将包含requestResponse对象
@POST(apirls.CREATE\u用户)
有趣的createUser(@Body-Body:createUser):单身

我可能理解错了,您只需要重新使用
RequestResponse
类,因为它是通用的,在所有API中都很常见。因此,只需将其作为
User
数据类中的参数

所以会是这样

数据类用户(
val requestResponse:requestResponse,
val userId:Int
)
现在,您可以直接从
User
对象访问它。您甚至可以更进一步,像这样为其指定默认值

数据类用户(
val requestResponse:requestResponse=requestResponse(),
val userId:Int=0
)
数据类请求响应(
val msg:String=“”,
val结果:布尔值=false,
val状态:Int=0
)

>“我如何访问基类中的用户T类型”。。。。你应该澄清你的问题。该类型不是您“访问”的对象-您将访问该类型的变量。访问基类中的用户类需要做哪些工作。这没有意义。提前知道类型与泛型类型的用途完全相反。你到底想做什么?我想创建一个BaseResponse类,在每个API中responseStatus都是通用的,它在josn中有键responseStatus,其他键作为数据类传递给我,我可以作为类型传递给你。我想从BaseResponse类中访问所有这些参数,比如用户数据类
data class BaseResponses { // Remove T, it's doing nothing
    lateinit var requestResponse: RequestResponse
}

// Extend base class to inherit common `requestResponse` field
data class User(val userId:Int) : BaseResponses()

// User now will contain requestResponse object
@POST(ApiUrls.CREATE_USER)
fun createUser(@Body body: CreateUser): Single<User>