Convertir Kotlin Array a Java varargs

2 minutos de lectura

avatar de usuario
roberto2011

¿Cómo puedo convertir mi Kotlin Array a un varargs Java String[]?

val angularRoutings = 
    arrayOf<String>("/language", "/home")

// this doesn't work        
web.ignoring().antMatchers(angularRoutings)

¿Cómo pasar un ArrayList a un parámetro de método varargs?

avatar de usuario
s1m0nw1

ahí está el operador de propagación que se denota por *.

El operador de propagación se coloca delante del argumento de la matriz:

antMatchers(*angularRoutings)

Para obtener más información, consulte el documentación:

Cuando llamamos a un vararg-función, podemos pasar argumentos uno por uno, por ejemplo asList(1, 2, 3)o, si ya tenemos una matriz y queremos pasar su contenido a la función, usamos el operador de propagación (prefija la matriz con *):

Tenga en cuenta que el operador de propagación solo se define para matrices y no se puede usar directamente en una lista. Cuando se trata de una lista, utilice, por ejemplo,toTypedArray() para transformarlo en una matriz:

 *list.toTypedArray()

  • ¿Y cómo volver a convertir?

    – lacas

    24 de mayo de 2018 a las 6:22

  • @Iacas ¿Qué quiere decir con “volver a convertir”? A vararg espera elementos individuales, y *array es la forma de Kotlin de decir “tratar esta matriz como elementos individuales para ese propósito”. Dentro de vararg-Funciona el vararg el parámetro será una matriz de todos modos. Para convertir elementos individuales en una matriz, puede usar arrayOf(...)pero no es necesario en este caso.

    – Darío Seidl

    4 de noviembre de 2018 a las 21:31

  • Tenga en cuenta que esto tiene una penalización de rendimiento muy alta. sitios.google.com/a/athaydes.com/renato-athaydes/posts/… comprobar Varargs, o medium.com/@BladeCoder/…

    – svkaka

    11 de noviembre de 2018 a las 21:58

  • ¿Hay alguna forma de evitar el uso del operador de propagación y pasar una matriz o lista a un método que acepte vararg?

    – Wacaloon

    29 de marzo de 2019 a las 9:23

  • @DarioSeidl Él quiere decir: ¿Qué pasa si tenemos varargs de cadena y deseamos pasar a una función que espera una matriz de cadenas?

    – desarrollador de Android

    7 oct 2019 a las 10:41

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad