Object expressions — это эквивалент Kotlin для анонимных внутренних классов Java. Они позволяют создать одноразовый экземпляр объекта с нужным поведением без явного объявления именованного подкласса.
val listener = object : MouseAdapter() {
override fun mouseClicked(e: MouseEvent) {
// handle click
}
}
| Возможность | Kotlin Object Expression | Java Anonymous Class |
|---|---|---|
| Реализация нескольких интерфейсов | ✅ Да | ✅ Да |
| Именованный тип | ❌ Нет | ❌ Нет |
| Захват переменных из внешней области видимости | ✅ Да (включая var) | ⚠️ Только final |
object declarations, object expressions не являются синглтонами — новый экземпляр создаётся каждый раз при вычислении выраженияObject expressions в Kotlin создают новый экземпляр каждый раз при их вычислении, в отличие от object деклараций, которые являются синглтонами.
Новый — ещё не проверен сообществом
Вы