Retrofit + Kotlin請求接口 Any無法識別問題

最近遇到一個問題,Retrofit + Kotlin請求接口時,使用 Map<String, Any> 作爲參數總是報錯。代碼如下:

 @GET("subj/simInfos")
@Headers("baseUrlName:app", "netEnv:$NET_ENV")
fun getSimInfos(@QueryMap params: Map<String, Any>): Observable<Response<SimInfoBean>>

百度了多篇文章,終於找到了可參考的博客 Retrofit + Kotlin請求接口時遇到問題,並找到了原因,問題出在參數map的value類型Any,對於java來說,這個value的類型是Object,可以被Retrofit識別,但對於kotlin來說,retrofit會把Any識別成 “?”,就報出了錯誤。
解決辦法:
添加註解@JvmSuppressWildcards
代碼如下:

 @GET("subj/simInfos")
@Headers("baseUrlName:app", "netEnv:$NET_ENV")
fun getSimInfos(@QueryMap params: @JvmSuppressWildcards Map<String, Any>): Observable<Response<SimInfoBean>>
發佈了37 篇原創文章 · 獲贊 17 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章