2017-08-31 4 views
1
networkCall = NetworkCall(context) 
      val responceCall = networkCall!!.getRetrofit(true).callReadMeService() 
      responceCall.clone().enqueue(object : Callback<BaseResponse<*>?> { 
       override fun onResponse(call: Call<BaseResponse<*>?>, response: Response<BaseResponse<*>?>) { 
        networkCall!!.dismissLoading() 


        web_view!!.loadData((response.body()?.data as LinkedTreeMap<*, *>)["description"] as String, "text/html", "UTF-8") 
       } 

       override fun onFailure(call: Call<BaseResponse<*>?>, t: Throwable) { 
        networkCall!!.dismissLoading() 

       } 
      }) 

ここでは、APIメソッド改造例外メソッドの戻り値の型を得ることがkotlinで型変数またはワイルドカードを含めることはできません

@POST("stories/readme") 
fun callReadMeService(): Call<BaseResponse<*>?> 

ある今、私はここに、この例外

を取得しています私のBaseResponseクラスは

です
class BaseResponse<T> { 

    var message: String? = null 
    var status: Boolean = false 
    var errors: Array<String>? = null 
    var code: String? = null 
    var data: T? = null 
} 

メソッド戻り値の型に、型変数またはワイルドカードを含めないでください。retrofit2.Call>私は、共通のAPIパーサ

あなたがこれを行うことはできません。この

答えて

0

のための任意の解決策として、このクラスを使用しています原因私は、BaseResponseクラスから汎用的なデータ変数を削除することはできません、今

メソッドIApi.callReadMeServiceためこれは、タイプ情報を完全に指定する必要があるからです。そうしないと、改造によってサービスが正しく生成されません。 See this discussion

タイプごとに異なるAPIメソッドを作成する必要があります。

+0

これを修正できる注釈はありますか? – pkgrover

関連する問題