Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Varargs: Cantidad Variable de Argumentos

Universidad Nacional de Rio Negro - Sede Andina

A veces es útil escribir un método que pueda recibir cualquier cantidad de argumentos del mismo tipo. Java proporciona una sintaxis especial para esto llamada varargs (del inglés variable arguments).

Sintaxis y Uso

Se declara con tres puntos (...) después del tipo del último parámetro:

public static int sumarTodos(int... numeros) {
    int total = 0;
    for (int n : numeros) {
        total = total + n;
    }
    return total;
}

// Se puede llamar con cualquier cantidad de argumentos
int r1 = sumarTodos();              // 0 argumentos, retorna 0
int r2 = sumarTodos(5);             // 1 argumento, retorna 5
int r3 = sumarTodos(1, 2, 3);       // 3 argumentos, retorna 6
int r4 = sumarTodos(1, 2, 3, 4, 5); // 5 argumentos, retorna 15

Método con varargs

Implementación Interna

Internamente, el compilador convierte los varargs en un arreglo. El método sumarTodos(int... numeros) es equivalente a sumarTodos(int[] numeros), pero con la diferencia de que al llamarlo no hace falta crear el arreglo explícitamente.

// Estas dos llamadas son equivalentes:
sumarTodos(1, 2, 3);
sumarTodos(new int[]{1, 2, 3});  // Creando el arreglo explícitamente

Equivalencia con arreglos

Restricciones

// Correcto: varargs al final
public static void imprimir(String prefijo, int... valores) {
    System.out.print(prefijo + ": ");
    for (int v : valores) {
        System.out.print(v + " ");
    }
    System.out.println();
}

imprimir("Notas", 7, 8, 9, 10);  // Imprime: "Notas: 7 8 9 10"

// Error: varargs no está al final
// public static void mal(int... valores, String sufijo) { }

Varargs con otros parámetros

Resumen

Este capítulo presentó las ideas centrales de Varargs: Cantidad Variable de Argumentos y dejó un marco de referencia para relacionarlas con el resto del recorrido.

Ejercicios

Próximo paso

Para seguir, conviene pasar a el material siguiente, donde el recorrido continúa sobre esta base.