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