Привет
Пишу для внутренних нужд модуль с retrofit.
Требуется сделать вызов а-ля Api.createApi(MyConcreteApi::
class.java, params), который должен возвращать один из 3-х возможных видов реализации API конкретного типа.
Сделал для этого метод в object'е:
fun <T> createApi(clazz: Class<T>, params: Params): T {
return FirstApiImpl<T>().create(
endpoint = params.endpoint,
xIdentificationToken = params.token,
serviceClass = clazz
)
}
Тут T это интерфейс конкретной реализации одного из 3 API: (корутины, Rx, Call)
Каким образом мне в теле метода понимать, вызывать FirstApiImpl или SecondApiImpl или ThirdApiImpl для T?