Как понять этот фрагмент кода Kotlin? - PullRequest
0 голосов
/ 23 ноября 2018

Я пришел с Java и следую онлайн-уроку об использовании библиотеки Volley для выполнения веб-запросов в Android.

Инструктор создал переменную запроса следующим образом:

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, этот способ написания кода довольно необычен для меня.

...