Por que usamos o "objeto complementar" como um tipo de substituição dos campos estáticos Java no Kotlin?

Qual é o significado pretendido de "objeto complementar"? Até agora eu tenho usado apenas para substituir o Javastatic quando eu precisar.

Estou confuso com:

Por que é chamado de "companheiro"?Isso significa que, para criar múltiplosestático propriedades, eu tenho que agrupá-lo dentrocompanion object quadra?Para criar instantaneamente uma instância singleton com escopo definido para uma classe, costumo escrever

:

companion object {
    val singleton by lazy { ... }
}

o que parece ser uma maneira unidiomática de fazê-lo. Qual é a melhor maneira?

questionAnswers(4)

yourAnswerToTheQuestion