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

149
Visualizações
¿Firma de método de clase basada en el tipo proporcionado en Kotlin?

Estoy tratando de reducir el texto estándar en algo en lo que estoy trabajando y me pregunto si algo es posible. Sospecho que no lo es, pero estaba buscando confirmación.

 class Something<T> { private val list = mutableListOf<T>() fun addToList(value: T) = list.add(value) }

Entonces, si quisiera usar esto con una clase como:

 class Data(number: Int, letter: Char)

Tendría que usar addToList como:

 addToList(Data(1,"a"))

¿Hay alguna forma de usar el tipo T suministrado para construir dinámicamente el método addToList? De modo que la clase sería instanciada como:

 val thing = Something<Data>()

pero luego addToList fueron llamados como

 addToList(1,"a")

Como dije, no creo que esto sea posible, pero estaba buscando confirmación.

Lo que realmente estaba tratando de hacer era pensar en algo que me permitiera hacer esto sin declarar Data en absoluto, sino simplemente definir la estructura y el subsiguiente método addToList cuando se creó una instancia de Something(); no estoy seguro de haberlo descrito. todo eso bien, pero si alguien tiene alguna sugerencia en general sobre eso, ¡se lo agradecería!

¡Gracias!

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

0

Hay clases de tupla Par y Triple proporcionadas en la biblioteca estándar que le permite evitar declarar una clase para combinaciones simples de valores. Si necesita más de 3 parámetros de diferentes tipos, deberá crear su propia clase o usar una biblioteca que proporcione clases de tupla más grandes. Si todos los tipos son iguales, puede usar List en lugar de una tupla.

En mi opinión, incluso Triple lo está presionando y cualquier cosa con más de dos propiedades distintas debería tener su propia clase de datos definida.

 class Something<A, B> { private val list = mutableListOf<Pair<A, B>>() fun addToList(valueA: A, valueB: B) = list.add(Pair(valueA, valueB)) } val something = Something<Int, String>() something.addToList(1, "a")

Un enfoque alternativo si desea mantener la flexibilidad de su clase Algo para contener cualquier cosa sería usar una función de extensión.

 class Something<T> { private val list = mutableListOf<T>() fun addToList(value: T) = list.add(value) } fun <A, B> Something<Pair<A, B>>.addToList(valueA: A, valueB: B) = addToList(Pair(valueA, valueB)) val something = Something<Pair<Int, String>>() something.addToList(1, "a")
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