Как передать Generic Interface T в функцию со ссылкой на класс в качестве параметра - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть общий интерфейс для http2-запроса retrofit2

interface BaseGetRequest<T: Any>  {
@GET fun requestGet(@Url urlGetRequest: String,@FieldMap parameters: Map<String, String>): Single<T>
}

и теперь мне нужно передать BaseGetRequest в retrofit2 как ссылку на класс, в java это просто рассматривается как BaseGetRequest.java, но не разрешает в kotlin, потому что он говорит о несоответствии типов.

enter image description here

Создать enter image description here

Как мне решить эту проблему?

1 Ответ

1 голос
/ 18 апреля 2019

Как правило, вы должны возвращать тип, который вы хотите получить в качестве ответа.

Если вам не нужен результат, я бы рекомендовал использовать Completable вместо Single.

Но есливам нужно одно предположение, что вы можете написать просто:

NetworkUtils.builder().create(BaseRequest::class.java)

без оператора бриллианта

...