Это просто способ Kotlin создать подкласс / реализовать анонимный класс и создать новый вместо него на месте.
Java:
//Define an interface (or a class):
public interface Runnable {
void run();
}
//Create an anonymous class and instantiate it:
Runnable runnable = new Runnable() {
@Override
void run() {
//Do something here
}
}
Котлин:
//Define an interface (or a class):
interface Runnable {
fun run()
}
//Create an anonymous class and instantiate it:
val runnable = object: Runnable() {
override fun run() {
//Do something here
}
}
Если вы не пишете часть object:
, это означает, что вы создаете экземпляр самого интерфейса / суперкласса. Что невозможно для интерфейсов и абстрактных классов. Кроме того, это синтаксическая ошибка иметь {}
после ()
без object:
.