获取改进异常方法返回类型不能在kotlin

时间:2017-08-31 09:09:30

标签: kotlin kotlin-android-extensions

 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方法

@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&gt;     对于方法IApi.callReadMeService

现在我无法从BaseResponse类中删除通用数据变量,因为我将此类用作常见的Api解析器

任何解决方案

1 个答案:

答案 0 :(得分:1)

您不能这样做,因为需要完全指定类型信息,否则改装无法正确生成服务。 See this discussion

您需要为每种类型创建不同的API方法。