¿Cuál es el significado pretendido de "objeto compañero"? Hasta ahora lo he estado usando solo para reemplazar Java static
cuando lo necesito.
Estoy confundido con:
- ¿Por qué se llama "compañero"?
- ¿Significa que para crear múltiples propiedades estáticas , tengo que agruparlo dentro del
companion object
bloque? - Para crear instantáneamente una instancia de singleton que tenga el alcance de una clase, a menudo escribo
:
companion object {
val singleton by lazy { ... }
}
lo que parece una forma unidiomática de hacerlo. ¿Cuál es la mejor manera?