Para aquellos anticuados como yo que en C, desde que descubrimos la varargs.h no podemos dejar de mandar un número de argumentos variables, hoy veremos que con Java también es posible.

Como introducción, para aquellos con conocimientos en C, sabrán de funciones como prinft que les permite enviar un número ilimitado de argumentos luego de su cadena con formatos.

A continuación, veremos una implementación de la varargs que de muy buena forma nos muestra la Wikipedia:

Ejemplo de función sumar:

#include <stdarg.h>
 
int sumar(int n, ...)
{
    va_list ap;
    int i = 0;
 
    va_start(ap, n);
    for (; n; n--) {
        i += va_arg(ap, int);
    }
    va_end(ap);
    return i;
}

Ejemplo de llamados a la función:

sumar (1);
sumar (1,2,3,4);

En Java, para hacer que un método tenga un número variable de argumentos se puede hacer enviando un array, o alguna colección, y luego desde el método recorrer el array o los elementos de la colección ¿que mejor ejemplo que el método main?

public static void main(String[] args) { 
    System.out.println("y los argumentos son:")
    for (String arg : args) 
       System.out.println(arg)
}

Pero bien, no es para desesperar, pues desde Java 5 se puden utilizar argumentos variables a un método de una forma por demás de sencilla:

public static void imprimir(String... cadenas) { 
  for (String cadena : cadenas) 
    System.out.println(cadena)
}

Como comentario, no está demás destacar que varargs no es más que una cáscara, pues internamente Java sigue utilizando un array, aunque a nosotros nos alivia mucho la sintaxis y por lo tanto se agradece ;-)

Vía: Mundo Geek