Что подразумевается под «сопутствующим объектом»? До сих пор я использовал его только для замены Java, static
когда мне это нужно.
Я смущен с:
- Почему это называется «компаньон»?
- Значит ли это, что для создания нескольких статических свойств я должен сгруппировать их вместе внутри
companion object
блока? - Чтобы мгновенно создать одноэлементный экземпляр, относящийся к классу, я часто пишу
:
companion object {
val singleton by lazy { ... }
}
который выглядит как однотипный способ сделать это. Какой способ лучше?