Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

676
Visualizações
Kotlin: el captador público devuelve una lista inmutable, pero el captador privado debería devolver una lista mutable

Quiero que mi clase tenga un campo que devuelva una lista inmutable para todos los accesos públicos, pero dentro de la instancia del objeto quiero que la lista sea mutable para poder agregarle elementos.

 class GrammarParser { private val grammars: List<Grammar> = mutableListOf() get() = field.toList() }

Tratar

 class GrammarParser { private val _grammars: MutableList<Grammar> = mutableListOf() val grammars: List<Grammar> get() = this._grammars.toList() }

Intenté esto, pero no estoy seguro de si esto se considera una buena práctica.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

En Kotlin, cada MutableList<T> también es una List<T> . Por lo tanto, puede crear una MutableList en un campo privado y declarar un campo adicional de tipo List que apunte al mismo objeto. Dentro de la clase, puede usar la referencia mutable para modificar la lista y exponer la List al exterior.

Ejemplo:

 class GrammarParser { private val mutableGrammars = mutableListOf<Grammar>() val grammars: List<Grammar> = mutableGrammars }

En su segundo ejemplo, crea una copia (instantánea) de la lista cada vez que llama al captador. Esto significa que, después de llamar al getter y obtener una lista, incluso si _grammars se modifica en otro lugar, los cambios no se reflejarán en la vista de lista de solo lectura de la que obtuvo la referencia. Esto podría ser algo que desea, entonces lo que está haciendo está bien. Pero si eso no es algo que está buscando, entonces el ejemplo que di arriba evitará la copia.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda