#android #kotlin #extension-methods
Вопрос:
У меня есть два класса моделей данных, и я хочу использовать универсальную функцию расширения для сопоставления этих классов и других классов.
Это пример моего кода для сопоставления двух классов:
fun HomeRequestBodyWithAuthQuery.Client.graphToDomain(): Client = Client(id = this.id, givenName = this.givenName)
Я написал эту функцию расширения, но возвращаемое значение содержит ошибку:
fun lt;G, Tgt; G.graphqlToDomain(): T = T
как я могу написать функцию расширения kotlin для этой работы?
Комментарии:
1. Где G в вашем образце? Как я вижу, вы использовали Client.graphToDomain() и возвращаете клиента с отображением. например, T. graphToDomain(): T
Ответ №1:
Вы можете взять свой универсальный тип в качестве параметра и вернуть его.
fun lt;G, Tgt; G.graphqlToDomain(t: T): T = t