报错日志:
java.lang.IllegalArgumentException: Parameter type must not include a type variable or wildcard: java.util.Map<java.lang.String, ?> (parameter #1)
定义接口
@FormUrlEncoded
@POST("appapi.php")
fun getLoginData(@FieldMap map:Map<String,@JvmSuppressWildcards Any>): Observable<ResponseBody>
为什么会出现这个问题呢?因为参数map的value类型Any,在Java中这个value的类型是Object,可以被Retrofit识别,但对于kotlin来说,retrofit会把Any识别成 ?,所以就报出了错误.
解决办法:
添加注解@JvmSuppressWildcards,代码如下:
@FormUrlEncoded
@POST("appapi.php")
fun getLoginData(@FieldMap map:Map<String,@JvmSuppressWildcards Any>): Observable<ResponseBody>