Каково различие между объектом и сопутствующим объектом в классе в kotlin?
Пример:
class MyClass {
object Holder {
//something
}
companion object {
//something
}
}
Я уже читал, тот сопутствующий объект должен использоваться, если содержание параметров/методов будет тесно связано со своим классом.
Но почему там также возможность объявления обычного объекта в классе? Поскольку это ведет себя точно как компаньон, но это должно иметь имя.
Существует ли, возможно, различие в его "помехах" (я со стороны Java), жизненный цикл?
Сопутствующий объект инициализируется, когда класс загружается (обычно в первый раз, когда на него ссылается другой код, который выполняется), тогда как Объект объявления инициализируются лениво при доступе впервые.
относитесь https://kotlinlang.org/docs/reference/object-declarations.html , нижний раздел ясно определяет различие между этими двумя.