Я копирую код Google из их репозитория образцов , реализующий Компоненты архитектуры Android, медленно адаптируясь к потребностям приложения, которое я имею в виду, используя код в качестве основы. Я уже достиг той части, где для меня отображается ошибка, и я не могу понять, почему. Это кодовый блок:
data class ApiSuccessResponse<T>(val responseBody: T) : ApiResponse<T>() {
constructor(body: T) : this (responseBody = body)
}
Основное сообщение об ошибке:
Конфликтующие перегрузки: открытый конструктор ApiSuccessResponse (body: T), определенный в com.example.rxe.api.ApiSuccessResponse, открытый конструктор ApiSuccessResponse (responseBody: T), определенный в com.example.rxe.api.ApiSuccessResponse * 9 *
Здесь я звоню ApiSuccessResponse
, как в примере кода:
sealed class ApiResponse<T> {
companion object {
fun <T> create(response: Response<T>): ApiResponse<T> {
return if (response.isSuccessful) {
val responseBody = response.body()
if (responseBody == null || response.code() == 204) {
ApiEmptyResponse()
} else {
ApiSuccessResponse(body = responseBody)
}
} else {
val error = response.errorBody()?.string()
val message = if (error.isNullOrEmpty()) {
response.message()
} else {
error
}
ApiErrorResponse(errorMessage = message ?: "Unknown error")
}
}
}
}
Что-то могло измениться после того, как образец был написан. Но если я переименую переменную в body
вместо responseBody
, та же ошибка подчеркнет вызов для класса ApiSuccessResponse
.