Добавить новые пользовательские свойства для retrofit2.Response - PullRequest
0 голосов
/ 21 июня 2019

В моем приложении для Android:

Здесь мой метод интерфейса:

import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path
import retrofit2.http.Query

@GET("traders/json")
suspend fun getTraidersList(): Response<List<Trader>>

Хорошо.

, но мне нужно добавить 2 моих пользовательских свойства в retrofit2.Response

например

val isCorrect  : boolean
val myCustom : MyCustomClass

Я хочу set/get это свойства.Вот так:

val response: Response<List<Trader>> = TransportService.getTraidersList()
if (response.isCorrect) {
 // do some logic
}
val myCustom = response.getMyCustom()

Возможно ли в Котлине?

1 Ответ

0 голосов
/ 21 июня 2019

Только вы можете сделать в Kotlin добавление некоторых расширений, которые на самом деле являются обычными статическими методами Java. Все вещи, связанные с геттерами и сеттерами расширений, также эмулируются статическими методами.

Исходя из вышеизложенного, мы не можем добавлять новые состояния (поля) статическими методами.

Но что мы можем сделать (я не знаком с Retrofit, это должно быть возможно), это использовать расширение getter isCorrect, которое может читать состояние ответа, и если оно 4xx или 5xx, то оно возвращает false

...