Varargs o argumentos variables en Java
¡Hey, qué tal! Hoy quiero mostrarles algo que para muchos resultará bastante útil. Se trata nada más y nada menos que de los varargs introducidos en Java 5.
Primero que nada, la forma de declarar un método con argumentos variables es muy parecida a cualquier otra declaración. method(String... args){...}
Nótese que hay tres puntos después del tipo de variable, es lo que caracteriza a los métodos varargs.
Estos métodos son muy parecidos a los que usan arreglos pero tienen dos diferencias básicas que es bueno conocer.
//Primero lo primero, declaramos las variables que se usarán en el ejemplo. int[] num={4,7,8,2}; int cuatro=4,dos=2; //Y los métodos también. Nótese la diferencia entre ambos. int suma_a (int... numero){ int resultado = 0; for(int i = 0; i < numero.length; i++){ resultado += numero[i]; }return resultado; } int suma_b (int[] numero){ int resultado = 0; for(int i = 0; i < numero.length; i++){ resultado += numero[i]; }return resultado; }
PRIMERA DIFERENCIA: La forma en que se llama al método.
//Llamadas válidas: System.out.println(suma_a(num)); System.out.println(suma_a(num[0],num[1],num[2],num[3])); System.out.println(suma_a(cuatro,7,8,dos)); System.out.println(suma_b(num)); //Llamadas NO válidas: System.out.println(suma_b(num[0],num[1],num[2],num[3])); System.out.println(suma_b(cuatro,7,8,dos));
SEGUNDA DIFERENCIA: En los métodos "varargs", el argumento variable debe ser siempre el último argumento mientras que los métodos con arreglos no es necesario.
//Declaraciones válidas: int suma_a(String cadena, int... numero){...} int suma_b(String cadena, int[] numero){...} int suma_b(int[] numero, String cadena){...} //Declaración NO válida: int suma_a(int... numero, String cadena){...}
Bueno, eso ha sido todo por esta entrada, espero que les resulte útil y/o interesante :) ¡Saludos!