获得改造异常方法返回类型不得在 kotlin 中包含类型变量或通配符

pkg*_*ver 7 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()

                }
            })
Run Code Online (Sandbox Code Playgroud)

这是api方法

@POST("stories/readme")
fun callReadMeService():   Call<BaseResponse<*>?>
Run Code Online (Sandbox Code Playgroud)

现在我得到这个例外

这是我的 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
}
Run Code Online (Sandbox Code Playgroud)

方法返回类型不得包含类型变量或通配符:retrofit2.Call> 用于方法 IApi.callReadMeService

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

对此的任何解决方案

ken*_*y_k 1

你不能这样做,因为类型信息需要完整指定,否则retrofit无法正确生成Service。请参阅此讨论

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