Retrofit+Kotlinリクエストインタフェースで問題が発生

893 ワード

Retrofit+Kotlinリクエストインタフェースを使用すると、問題が発生し、ログをエラーします.
Parameter type must not include a type variable or wildcard: java.util.Map (parameter #1)

コードは大体以下の通りです.
//  
val map : Map = hashMapOf(
    //    
    "time" to System.CurrentTimeMillis
)
//    
   @FormUrlEncoded
   @POST("api/box-mgmt")
   fun regBox(@FieldMap map:  Map): Observable>
    

問題はパラメータmapのvalueタイプAnyにある.Javaにとって、このvalueのタイプはObjectで、Retrofitで識別できますが、kotlinにとってretrofitはAnyを?間違いを報告した.解決策:注釈@JvmSuppressWildcards を追加
 @FormUrlEncoded
   @POST("api/box-mgmt")
   fun regBox(@FieldMap map:  Map):@JvmSuppressWildcards Observable>