我来自Java,我正在在线学习有关使用Volley
库在Android中进行Web请求的教程。
教师创建了请求变量,如下所示:
val registerRequest = object : StringRequest(Method.POST, URL_REGISTER, Response.Listener {
println(it) // will print the response
complete(true)
}, Response.ErrorListener {
Log.d("ERROR", "Could not register user: $it")
complete(false)
}) {
override fun getBodyContentType(): String {
return "application/json; charset=utf-8"
}
override fun getBody(): ByteArray {
return requestBody.toByteArray()
}
}
我了解他正在创建registerRequest
类型的StringRequest
变量。但是我不明白的是为什么他在StringRequest
前面加上object :
。
我也知道StringRequest
构造函数接受Int, String, Lambda, Lambda
。之后,这使我感到困惑,因为开发人员能够在构造函数关闭后声明一些override
方法。他们为什么这么做?据我所知,这类似于将StringRequest子类化,然后在其中编写重写方法?我对吗?
来自Java,这种编写代码的方式对我来说很不寻常。