Varargs o argumentos variables en Java

Consigue gratis tu cuenta

Curso de Java

Java es uno de los lenguajes de programación más utilizados y que más oferta laboral tiene. Sirve para hacer aplicaciones móviles, páginas web y muchas cosas más. ¿Quieres aprender? ¡Apúntate!

Comenzar ahora

argumentos variables java varargs tutorial ¡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!


¿Quieres seguir aprendiendo?