Presta atención porque en esta noticia hallarás la respuesta que buscas.
Solución:
Esos son varargs de Java. Te permiten pasar cualquier número de objetos de un tipo específico (en este caso son de tipo JID).
En su ejemplo, las siguientes llamadas a funciones serían válidas:
MessageBuilder msgBuilder; //There should probably be a call to a constructor here ;)
MessageBuilder msgBuilder2;
msgBuilder.withRecipientJids(jid1, jid2);
msgBuilder2.withRecipientJids(jid1, jid2, jid78_a, someOtherJid);
Vea más aquí: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
La forma de usar el elipsis o Varargs dentro del método es como si fuera un array:
public void PrintWithEllipsis(String...setOfStrings)
for (String s : setOfStrings)
System.out.println(s);
Este método se puede llamar de la siguiente manera:
obj.PrintWithEllipsis(); // prints nothing
obj.PrintWithEllipsis("first"); // prints "first"
obj.PrintWithEllipsis("first", "second"); // prints "firstnsecond"
En el interior PrintWithEllipsis
el tipo de setOfStrings
es un array de Cuerda. Por lo tanto, podría ahorrarle trabajo al compilador y pasar un array:
String[] argsVar = "first", "second";
obj.PrintWithEllipsis(argsVar);
Para Varargs métodos, un parámetro de secuencia se trata como si fuera un array del mismo tipo. Entonces, si dos firmas difieren solo en que una declara una secuencia y la otra una arraycomo en este ejemplo:
void process(String[] s)
void process(String...s)
entonces se produce un error en tiempo de compilación.
Fuente: La especificación del lenguaje de programación Java, donde el término técnico es variable arity parameter
en lugar del término común varargs
.
La notación de tres puntos (…) en realidad se tomó prestada de las matemáticas y significa “… y así sucesivamente”.
En cuanto a su uso en Java, significa varargs
, lo que significa que se puede agregar cualquier cantidad de argumentos a la llamada al método. Las únicas limitaciones son que el varargs
debe estar al final de la firma del método y solo puede haber uno por método.
Recuerda que puedes dar visibilidad a esta división si lograste el éxito.