У меня есть запрос на модернизацию, который может отвечать на два разных ответа Json по одному ответу за раз. Я хочу поймать оба случая в onResponse. Итак, я создал класс BaseResponse.
data class ResponseBase(val responseClass: ResponseClass?, val errorClass: ErrorClass?)
и два внутренних класса такие.
data class ResponseClass(
val config: Config
)
// Config class
data class Config(
val acceptGuest: Int,
val name: String,
val host: Long
)
И класс ошибки такой
data class ErrorResponse(
val error: Error
)
data class Error(
val id: String,
val message: String
)
Итак, я предполагаю, что если придет ответ json, у меня будет объект responseClass, в противном случае у меня будет ErrorObject.
Поэтому, когда я получаю следующий ответ json от сервера, который соответствует ResponseClass, у меня возникает исключение.
{"config":{"acceptGuest":0,"name":"server name","host":100}}
Невозможно вызвать конструктор без аргументов для retrofit2.Call ‹.... ResponseClass>. Регистрация InstanceCreator в Gson для этого типа может решить эту проблему.
Что мне не хватает ..?