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 .

  • Errores de ejemplo de inicio de Ktor
  • ¿Cómo mejorar la syntax de kotlin lambda?
  • ¿Cómo realizar una acción para todas las combinaciones de elementos en las lists?
  • Reescriba el código de Java en Kotlin utilizando la reference de function.
  • ¿Mezcla generics de class y function en Kotlin?
  • TornadoFX - eliminar elemento con ContextMenu hacer clic derecho
  • Kotlin `shl` no funciona
  • El suscriptor RxJava2 PublishSubject no puede recibir elementos cuando se le llama desde varios hilos usando SingleScheduler
  • ¿Cómo puedo get valor de observable
  • Referencia no resuelta: DaoSession usando greendao y kotlin
  • ¿Cómo agregar un oyente Onclick en un RecyclerView en Android Studio con Kotlin?