kotlin使用retrofit请求出现Parameter type must not include a type variable or wildcard

报错日志:

   java.lang.IllegalArgumentException: Parameter type must not include a type variable or wildcard: java.util.Map (parameter #1)

定义接口

 @FormUrlEncoded
 @POST("appapi.php")
  fun getLoginData(@FieldMap map:Map): Observable

为什么会出现这个问题呢?因为参数map的value类型Any,在Java中这个value的类型是Object,可以被Retrofit识别,但对于kotlin来说,retrofit会把Any识别成 ?,所以就报出了错误.

解决办法:

添加注解@JvmSuppressWildcards,代码如下:

   @FormUrlEncoded
   @POST("appapi.php")
   fun getLoginData(@FieldMap map:Map): Observable

你可能感兴趣的:(kotlin学习笔记,android,常见问题集锦)