类型推断失败。预期类型不匹配
Type inference failed. Expected type mismatch
下面的代码显示了错误。类型推断失败。预期类型不匹配 需要:Response<BaseResponse<Any>>!
找到:Response<BaseResponse<RetriveUserInfoResponse>!>!
`when`( mockIOnboardingService.validateCustomerIdentity(customerType.toLowerCase(), ValidateCustomerRequest(customerId, documentType, "243546", tyc)))
.thenReturn(Response.success(BaseResponse(payload = RetriveUserInfoResponse("+5689765432")))) //--> Here the error
这是 validateCustomerIdentity 方法
@POST(ApiConstants.bffOnboardingPath + ApiConstants.pathRetriveUserInfo)
suspend fun validateCustomerIdentity(
@Header(ApiConstants.headerXflowService) customerType : String,
@Body body: ValidateCustomerRequest
): Response<BaseResponse<Any>>
如您所见returns BaseResponse<Any>
。为什么 Android Studio 向我显示 BaseResponse<RetriveUserInfoResponse>!
错误
这是 RetrieveUserInfoResponse 数据class
data class RetriveUserInfoResponse(
@SerializedName("phone")
val phone: String
)
这个问题是 Response.success(BaseResponse(payload = RetriveUserInfoResponse("+5689765432")))
产生了一个 Response<BaseResponse<RetriveUserInfoResponse>>
,它与 Response<BaseResponse<Any>>
.
不是同一类型(或子类型)
您可以通过将 RetriveUserInfoResponse
转换为 Any
来修复它:
Response.success(BaseResponse(payload = RetriveUserInfoResponse("+5689765432") as Any))
或者通过将 validateCustomerIdentity()
的 return 类型更改为 Response<out BaseResponse<out Any>>
,这是可行的,因为 Response<BaseResponse<RetriveUserInfoResponse>>
是 Response<out BaseResponse<out Any>>
的子类:
@POST(ApiConstants.bffOnboardingPath + ApiConstants.pathRetriveUserInfo)
suspend fun validateCustomerIdentity(
@Header(ApiConstants.headerXflowService) customerType : String,
@Body body: ValidateCustomerRequest
): Response<out BaseResponse<out Any>>
下面的代码显示了错误。类型推断失败。预期类型不匹配 需要:Response<BaseResponse<Any>>!
找到:Response<BaseResponse<RetriveUserInfoResponse>!>!
`when`( mockIOnboardingService.validateCustomerIdentity(customerType.toLowerCase(), ValidateCustomerRequest(customerId, documentType, "243546", tyc)))
.thenReturn(Response.success(BaseResponse(payload = RetriveUserInfoResponse("+5689765432")))) //--> Here the error
这是 validateCustomerIdentity 方法
@POST(ApiConstants.bffOnboardingPath + ApiConstants.pathRetriveUserInfo)
suspend fun validateCustomerIdentity(
@Header(ApiConstants.headerXflowService) customerType : String,
@Body body: ValidateCustomerRequest
): Response<BaseResponse<Any>>
如您所见returns BaseResponse<Any>
。为什么 Android Studio 向我显示 BaseResponse<RetriveUserInfoResponse>!
错误
这是 RetrieveUserInfoResponse 数据class
data class RetriveUserInfoResponse(
@SerializedName("phone")
val phone: String
)
这个问题是 Response.success(BaseResponse(payload = RetriveUserInfoResponse("+5689765432")))
产生了一个 Response<BaseResponse<RetriveUserInfoResponse>>
,它与 Response<BaseResponse<Any>>
.
您可以通过将 RetriveUserInfoResponse
转换为 Any
来修复它:
Response.success(BaseResponse(payload = RetriveUserInfoResponse("+5689765432") as Any))
或者通过将 validateCustomerIdentity()
的 return 类型更改为 Response<out BaseResponse<out Any>>
,这是可行的,因为 Response<BaseResponse<RetriveUserInfoResponse>>
是 Response<out BaseResponse<out Any>>
的子类:
@POST(ApiConstants.bffOnboardingPath + ApiConstants.pathRetriveUserInfo)
suspend fun validateCustomerIdentity(
@Header(ApiConstants.headerXflowService) customerType : String,
@Body body: ValidateCustomerRequest
): Response<out BaseResponse<out Any>>