Код Котлина:
class Foo {
companion object {
fun a() : Int = 1
}
fun b() = a() + 1
}
можно тривиально изменить на
object FooStatic {
fun a() : Int = 1
}
class Foo {
fun b() = FooStatic.a()
}
Я знаю, что объект-компаньон можно использовать для использования в качестве реальной статической функции java, но есть ли другие преимущества для использования объекта-компаньона?