Generics 为什么可以';我是否将接口用作此Rx变压器的通用类型?

Generics 为什么可以';我是否将接口用作此Rx变压器的通用类型?,generics,kotlin,rx-java2,Generics,Kotlin,Rx Java2,我在Kotlin中有以下数据类作为参考: interface GenericResponse { val error: Error? fun hasErrorObject(): Boolean = error != null } data class LoginResponse( val name: String, val auth: String, @SerializedName("error") override val error: Error

我在Kotlin中有以下数据类作为参考:

interface GenericResponse {

    val error: Error?

    fun hasErrorObject(): Boolean = error != null
}

data class LoginResponse(
    val name: String,
    val auth: String,
    @SerializedName("error") override val error: Error? = null
) : GenericResponse
LoginResponse
实现
一般响应
。我以以下方式使用改装API:

@POST("******")
fun createSession(@Body body: LoginBody): Single<Response<LoginResponse>>
如您所见,我必须将响应主体转换为
GenericResponse
实例,然后在
ExceptionTransformer
中继续登录。我的问题是:有没有办法将返回类型用作
GenericResponse
而不是
T
(generic)类型?我曾尝试过这样做,但在这样使用时遇到了一些错误:

fun createSession(loginBody: LoginBody): Single<LoginResponse> {
    return apiService.createSession(loginBody)
          .compose(exceptionTransformers.wrapRetrofitExceptionSingle())
}
fun createSession(loginBody:loginBody):单个{
返回apiService.createSession(loginBody)
.compose(Transformers.wrapreProfiteExceptionSingle()除外)
}

根据您所指定的,似乎
T
将始终是
GenericResponse
的子类型-添加类型参数约束可能是您想要的

fun <T : GenericResponse> wrapRetrofitExceptionSingle() {
    ...
}
fun wrapropertofitexceptionsingle(){
...
}
“遇到了许多错误”-您可以指定一个示例吗?
fun <T : GenericResponse> wrapRetrofitExceptionSingle() {
    ...
}