Котлин: параметр встроенной функции с обобщениями не найден во время выполнения - PullRequest
0 голосов
/ 28 июня 2019

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

Это postфункция класса ApiClient:

inline fun <reified T> post(entity: T, crossinline completion : (entity : T?, errorStatusCode: Int?) -> Unit) {
    performRequest(
        httpMethod = Request.Method.POST,
        entity =  entity,
        completion =  completion)
}

Затем я вызываю эту функцию из PassengerRepositoryImpl:

override fun register(passenger: Passenger, completion: (passenger: Passenger?, errorStatusCode: Int?) -> Unit) {

    apiClient.post(passenger, completion)
}

Моя проблема в том, что мои параметры entity и completionвсегда «не найден» внутри функции записи, как вы можете видеть на следующих изображениях:

passenger правильно передается в post функцию:

imagepassenger is correctly passed to post function">

Но параметр entity не найден в post теле.

imageentity">

Мой вопрос: как решитьЭта проблема?Я что-то путаю?

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...