Общие параметры Любой из kotlin преобразуется в подстановочные знаки (?)

Я столкнулся с проблемой, когда использовал kotlin и retrofit2. Общие параметры kotlin преобразуются в подстановочные знаки (?), Но не в java.

теперь мне нужен параметр Map<String, Object> (Ключ – это тип String, значение не фиксировано) в java, преобразование в код kotlin – это Map<String, Any> .

Но модифицировать их по-разному.

Map<String, Object> в java будет скомпилирована в [java.util.Map<java.lang.String, java.lang.Object>] и работает правильно.

Map<String, Any> в kotlin должна быть скомпилирована в [java.util.Map<java.lang.String, ?>] , А параметр retrofit2 вызывает параметрError (тип параметра не должен содержать переменную типа или подстановочный знак).

1, связанный с доработкой код

 public ServiceMethod build() { …… for (int p = 0; p < parameterCount; p++) { Type parameterType = parameterTypes[p]; if (Utils.hasUnresolvableType(parameterType)) { throw parameterError(p, "Parameter type must not include a type variable or wildcard: %s", parameterType); } …… } …… } 

Метод Utils.hasUnresolvableType (parameterType) цитируется следующим образом

 final class Utils { …… static boolean hasUnresolvableType(Type type) { …… if (type instanceof WildcardType) { return true; } …… } …… } 

2, интерфейс в java, мне нужен параметр Map<String, Object> (Ключ – это тип String, значение не определено), он компилируется в [java.util.Map<java.lang.String, java.lang.Object>] и работает правильно.

 @GET("/index.html") Observable<ResponseBody> getQueryMap(@QueryMap Map<String, Object> params); 

3, интерфейс в kotlin, мне нужен параметр Map<String, Any> (Ключ – это тип String, значение не определено), но оно компилируется в [java.util.Map<java.lang.String, ?>] , а параметр retrofit2 вызывает параметрError (тип параметра не должен содержать переменную типа или подстановочный знак).

 @GET("/index.html") fun getQueryMap(@QueryMap paramsMap: Map<String, Any>): Observable<ResponseBody> 

Intereting Posts
Как десериализовать Firestore DocumentSnapshot, содержащий DocumentReference, используя Kotlin StackOverflowError с использованием Singleton в Котлине Не удалось загрузить файл на Android, и нет никаких сведений об ошибке Могу ли я написать sampleVideoView? = findViewById <VideoView> (R.id.videoView) в Котлине? Kotlin with-statement как выражение Как сделать сумму элементов для нескольких списков в kotlin URL не загружается, особенно в устройстве samsung Переименование каталога «java» в «kotlin» в Android Studio Разница между тем и запуском в Котлине Ввод / вывод дженериков для абстрактного контейнерного инструмента в Котлине? Список, содержащий значения NULL, в NULL-список в Kotlin Как скомпилировать модуль домена Kotlin с клиентским модулем с Gradle? Расширенное назначение и приращение не поддерживаются для локальных делегированных свойств и встроенных свойств Как исправить инициализацию поля val с помощью прокси-сервера Spring Security? Kotlin создает проблемы с Android