【发布时间】:2021-06-12 13:25:21
【问题描述】:
val apiInterface: ApiInterface =
ApiClient().getApiClient()!!.create<ApiInterface>(ApiInterface::class.java) ?:
val call: Call<Contacts?>? = apiInterface.signUp(username, contact, password)
call.enqueue(object : Callback<Contacts?>() {
fun onResponse(call: Call<Contacts?>?, response: Response<Contacts?>) {
val value: String = response.body().getValue()
val message: String = response.body().getMassage()
if (value == "success") {
Toast.makeText(this@SignUpActivity, message, Toast.LENGTH_SHORT).show()
val intent = Intent(this@SignUpActivity, LoginActivity::class.java)
startActivity(intent)
} else if (value == "exists") {
Toast.makeText(this@SignUpActivity, message, Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this@SignUpActivity, message, Toast.LENGTH_SHORT).show()
}
}
fun onFailure(call: Call<Contacts?>?, t: Throwable) {
Toast.makeText(this@SignUpActivity, "Error! $t", Toast.LENGTH_SHORT).show()
}
})
错误:No type arguments expected for class Call
我在 <Contacts?> 上收到上述错误我是 Kotlin 的新手所以,我不知道为什么我会收到错误。
我已经从我的 Java 类转换了上面的源代码。 这是我的Java code。
val apiInterface: ApiInterface =
ApiClient().getApiClient()!!.create<ApiInterface>(ApiInterface::class.java)
val call: retrofit2.Call<Contacts?>? = apiInterface.signUp(username, contact, password)
call?.enqueue(object : Callback<Contacts?>() {
override fun onResponse(call: retrofit2.Call<Contacts?>?, response: Response<Contacts?>) {
val value: String = response.body()?.getValue()!!
val message: String = response.body()?.getMassage()!!
if (value == "success") {
Toast.makeText(this@SignUpActivity, message, Toast.LENGTH_SHORT).show()
val intent = Intent(this@SignUpActivity, LoginActivity::class.java)
startActivity(intent)
} else if (value == "exists") {
Toast.makeText(this@SignUpActivity, message, Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this@SignUpActivity, message, Toast.LENGTH_SHORT).show()
}
}
override fun onFailure(call: retrofit2.Call<Contacts?>?, t: Throwable) {
Toast.makeText(this@SignUpActivity, "Error! $t", Toast.LENGTH_SHORT).show()
}
})
错误:
This class does not have a constructor
【问题讨论】:
-
为什么第一行末尾有
?:? -
@ADM 当我添加 Java 源代码时,它会自动生成......哦!我实际上不需要那个..我已经删除了,但是我的问题还没有解决...
-
尝试删除构造函数调用 () Callback
() 到 Callback 和 val 调用:retrofit2.Call ? = apiIn ...... call?.enqueue(object : Callback {
标签: android kotlin retrofit okhttp