Можно ли создать несколько companion object в одном классе

«Можно ли создать несколько companion object в одном классе» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, в Kotlin можно объявить только один companion object внутри класса. Это ограничение синтаксиса языка. Однако, внутри companion object можно объявлять несколько функций и свойств.

class MyClass {
    companion object {
        const val CONSTANT = "value"
        fun foo() { /* ... */ }
        fun bar() { /* ... */ }
    }
}

Если нужна дополнительная группировка, можно использовать вложенные объекты внутри companion object:

class MyClass {
    companion object {
        object Group1 {
            fun method1() { /* ... */ }
        }
        object Group2 {
            fun method2() { /* ... */ }
        }
    }
}

Вызов: MyClass.Group1.method1()