Los parameters generics Cualquiera de kotlin se convierte en comodines (?)

Encontré un problema cuando utilicé kotlin y retrofit2. Los parameters generics de kotlin se convierten en comodines (?), Pero no en java.

ahora, necesito un parámetro Map<String, Object> (La key es el tipo String, el valor no está fijo) en java, el código convertir a kotlin es Map<String, Any> .

Pero la retroadaptación los trata de manera diferente.

Map<String, Object> en java se comstack en [java.util.Map<java.lang.String, java.lang.Object>] , y funciona correctamente.

Map<String, Any> en kotlin se comstack en [java.util.Map<java.lang.String, ?>] , Y el retrofit2 arroja parameterError (el tipo de parámetro no debe include una variable de tipo o un comodín).

1, código relacionado de modificación

 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); } …… } …… } 

El método Utils.hasUnresolvableType (parameterType) se cita de la siguiente manera

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

2, interfaz en Java, necesito un parámetro Map<String, Object> (La key es el tipo String, el valor no es fijo), se comstack en [java.util.Map<java.lang.String, java.lang.Object>] , y funciona correctamente.

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

3, interfaz en kotlin, necesito un parámetro Map<String, Any> (La key es el tipo String, el valor no es fijo), pero se comstack en [java.util.Map<java.lang.String, ?>] , y retrofit2 arroja parameterError (el tipo de parámetro no debe include una variable de tipo o un comodín).

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