Constructor llama a kotlin usando vararg

¿Hay alguna manera de llamar a un constructor utilizando varargs sin una encoding dura del parámetro array ( datain[0] , datain[10] , etc.). Por ejemplo,

 constructor(vararg datain:String): this(datain[0],datain[1],datain[2]){ } 

Actualmente estoy llamando así:

 public class parent(var var1:String, var var2:String){ } public class child(var var3:String, var1:String, var2:String): parent(var1,var2){ constructor(vararg datain:String): this(datain[0],datain[1],datain[2]){ } } 

Parece un poco sin sentido ya que vararg puede contener más o less elementos de los que el otro constructor espera. Además, es una situación bastante extraña cuando todos los arguments tienen el mismo tipo para que el vararg se vararg . Pero no, actualmente no hay ninguna function de idioma que descomponga vararg en function o constructor llame parameters no vararg.

Supongo que es mejor para el layout del lenguaje que le muestres explícitamente que eliges ciertos elementos de vararg ya que no contiene trampas ocultas y siempre estarás al tanto de la indexing.

Pero lo que se puede hacer es pasar un parámetro vararg como parámetro vararg a otra function o constructor, puede ser, después de haberlo transformado. Lo realiza el operador de difusión * , vea el ejemplo:

 public class V(vararg s: String) { constructor(vararg s: Int): this("a", *s.map(Int::toString).toTypedArray(), "b") } 

Cualquier matriz del tipo correcto se puede pasar usando * (incluido vararg sí, ya que es una matriz), pero es con lo que termina el poder de vararg .

  • Genéricos en Kotlin con extiende
  • ¿Cómo represento una tabla de unión con un campo adicional usando eBean y Kotlin?
  • Usa el reino en todos los hilos
  • ¿Qué versión (s) de Kotlin debería usar para Android Studio 3.0 Canary 1?
  • Evite el conflicto de time de ejecución / stdlib de Kotlin con otros complementos
  • Kotlin: Public get private set var
  • Cómo controlar el flujo sin .flatMap, que rompe una stream reactiva que impide que operadores como distinctUntilChanged trabajen en toda la secuencia
  • ¿Cómo uso el object Kotlin por reflexión?
  • ¿Es posible devolver el mismo tipo que el parámetro de tipo en la instrucción when
  • ¿Usar EventBus para finalizar una actividad de la actividad base?
  • Deshabilitar un button