kotlin 中的接口回调不需要类型参数

No type arguments expected for interface Callback in kotlin

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 class 转换了上面的源代码。 这是我的 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()
        }
    })

Current error

Error :This class does not have a constructor

你能显示导入吗? 必须是 import retrofit2.Call; 而不是 smth else.

另外,需要删除第二行的?:

我建议你阅读有关 Kotlin 中的 elvis 运算符和 null 安全性(它是关于如何使用此 ??:!![ link ]