如何理解这个Kotlin代码片段?

时间:2018-11-23 13:35:04

标签: kotlin android-volley

我来自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,这种编写代码的方式对我来说很不寻常。

0 个答案:

没有答案