使用Retrofit + Kotlin請求接口時,遇到問題,報錯日誌:java
Parameter type must not include a type variable or wildcard: java.util.Map<java.lang.String, ?> (parameter #1)
代碼大體以下:api
//參數 val map : Map<String,Any> = hashMapOf( //添加參數 "time" to System.CurrentTimeMillis ) //接口定義 @FormUrlEncoded @POST("api/box-mgmt") fun regBox(@FieldMap map: Map<String, Any>): Observable<BaseResponseBean<Any>>
問題出在參數map的value類型Any.對於java來講,這個value的類型是Object,能夠被Retrofit識別,但對於kotlin來講,retrofit會把Any識別成 ?,就報出了錯誤.
解決辦法:
添加註解@JvmSuppressWildcards
日誌
@FormUrlEncoded @POST("api/box-mgmt") fun regBox(@FieldMap map: Map<String, Any>):@JvmSuppressWildcards Observable<BaseResponseBean<Any>>