Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Paso de lista <String> a String … parámetro

Estoy luchando para pasar una lista de cadenas en un método que requiere el parámetro " Cadena … ".

¿Alguien puede ayudarme?

// How to put names into dummyMethod? List<String> names = getNames(); 

  public void dummyMethod(String... parameter) { mInnerList.addAll(Arrays.asList(parameter)); } 

    6 Solutions collect form web for “Paso de lista <String> a String … parámetro”

    Tendrás que convertir la List<String> en una matriz String para usarla en el parámetro 'varargs' de dummyMethod . Puede utilizar toArray con una matriz adicional como parámetro. De lo contrario, el método devuelve un Object[] y no compilará:

     List<String> names = getNames(); dummyMethod(names.toArray(new String[names.size()])); 

    Puede hacer lo siguiente:

     dummyMethod(names.toArray(new String[names.size()]) 

    Esto convertirá la lista en array

    El var-arg realmente acepta una matriz y se puede usar como:

     dummyMethod(names.toArray(new String[names.size()])); 

    Aquí hay un ejemplo de código:

     List<String> names = new ArrayList<>(); names.add("A"); names.add("B"); dummyMethod(names.toArray(new String[names.size()])); 

    Pasa String array ( String[] ) dentro del método. Tendrás que convertir tu Lista en Array y luego pasarla.

     if (names != null) { dummyMethod(names.toArray(new String[names.size()])); } 

    Puesto que después analiza el parámetro como una lista, sugiero cambiar el método a:

     public void dummyMethod(List<String> parameter) { mInnerList.addAll(parameter); } 

    Para evitar los costos adicionales.

    Sin embargo, si desea utilizar este método "tal como está", debe llamar así:

     dummyMethod(names.toArray(new String[names.size()])); 

    Como Glorfindel sugiere en su respuesta , ya que los tres puntos significan que usted puede llamar al método usando muchas Cuerdas, o una matriz de Cuerdas (vea este post para más detalles).

    Este es el parámetro vararg y para esto debes pasar array. ArrayList no funcionará. Puede convertir esta lista en matriz antes de pasar al método.

     String a = new String[names.size]; list.toArray(a) 
      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.