número variable de argumentos (varargs)

Java permite pasar un número indefinido (0 o más) de argumentos a un método, con algunas limitaciones:

·         sólo el último argumento puede ser de longitud indefinida

·         todos los valores deben ser del mismo tipo, incluyendo promoción, upcasting y autoboxing.

    public int maximo(int ... valores) {

        int maximo = Integer.MIN_VALUE;

        for (int n : valores)

            if (n > maximo)

                maximo = n;

        return maximo;

    }

    max(5, -7, 21) → 21

    max() → MIN_VALUE

 

Nótese que el número de argumentos puede ser cero (0).

Técnicamente, java trata estos argumentos como un array de datos del tipo indicado:

    public boolean ordenados(String ... piezas) {

        if (piezas.length < 2)

            return true;

        for (int i = 1; i < piezas.length; i++) {

            String s1 = piezas[i - 1];

            String s2 = piezas[i];

            if (s1.compareTo(s2) > 0)

                return false;

        }

        return true;

    }

    ordenados("alfa", "beta", "gamma", "delta") → false

    ordenados("alfa", "beta", "delta", "gamma") → true

 

Temas relacionados

115. Método [method] (concepto)