我是kotlin的新手,它是我的首次应用测试。我尝试进行改造呼叫(POST),但是在创建代码时出现sintax错误。
我的语法错误:回调没有预期的类型参数
这是我在演示者层上的doLogin函数(我在这里遇到错误):
override fun doLogin() {
val call = RetrofitInitializer().loginApiContract().login()
call.enqueue(object: Callback<UserAccount> {
override fun onResponse(call: Call<UserAccount>?,
response: Response<UserAccount) {
}
override fun onFailure(call: Call<UserAccount>?,
t: Throwable?) {
}
})
}
那是我的改造初始化程序:
class RetrofitInitializer {
private val retrofit = Retrofit.Builder()
.baseUrl("http://192.168.0.23:8080/")
.addConverterFactory(GsonConverterFactory.create())
.build()
fun loginApiContract() : LoginApiContract{
return retrofit.create(LoginApiContract::class.java)
}
}
这是我的通话界面:
interface LoginApiContract {
@POST("login")
fun login() : Call<UserAccount>
@GET("statements")
fun getStatements()
}
答案 0 :(得分:1)
kotlin的最佳实践-使用rxjava calladapter工厂。
尝试添加依赖项
编译“ com.squareup.retrofit2:adapter-rxjava2:”
并添加呼叫适配器工厂
private val retrofit = Retrofit.Builder()
.baseUrl("http://192.168.0.23:8080/")
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build()