Ответ
В 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 — просто модификатор для членов класса.