Retrofit + Kotlin請求接口時遇到問題

使用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>>
相關文章
相關標籤/搜索