Какой знаешь аналог companion object в Java

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

Ответ

В Java аналогом companion object из Kotlin является static блоки и методы. В Kotlin companion object позволяет объявлять статические члены класса, но в Java это делается напрямую через ключевое слово static.

Пример в Kotlin:

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

Аналог в Java:

public class MyClass {
    public static final String CONSTANT = "value";
    public static void staticMethod() { /* ... */ }
}

Основное отличие: в Kotlin companion object — это объект-одиночка, который может реализовывать интерфейсы, а в Java static — просто модификатор для членов класса.