Proměnný počet parametrů v Javě

Java umožňuje zadat metodě libovolný počet parametrů pomocí trojtečkové notace. Vnitřně si Java vytvoří pole argumentů a toto pole předá metodě. Jedná se tedy o zjednodušený zápis oproti tomu, abyste museli sami vytvořit pole a to předat.

Mějmě proměnné

 String ahoj = "Ahoj";
 String nazdar = "Nazdar";
 String cau = "Čau";
 String[] pole = {"AA", "BB", "CC", "DD"};
 List<String> seznam = Arrays.asList("XXX", "YYY", "ZZZ");

a metodu

public static void method(Object ... params) {
    for (int i = 0; i < params.length; i++) {
        if (i > 0) {
            System.out.print(" | ");
        }
        System.out.print(params[i]);
    }
    System.out.println();
}

Metodu je možné zavolat bez argumentů, s jedním nebo několika argumenty a nebo za argument zadat pole objektů.

method();
method(ahoj, nazdar, cau);
method(pole);
method(seznam);
method(seznam.toArray());

Výsledek

Ahoj | Nazdar | Čau
AA | BB | CC | DD
[XXX, YYY, ZZZ]
XXX | YYY | ZZZ

Pokud chceme argumenty kombinovat (zadat jak argument tak pole argumentů zároveň) je potřeba vytvořit pole s argumenty a to předat metodě.

List<Object> objectParamList = new ArrayList<Object>();
objectParamList.add(cau);
objectParamList.add(new Date());
objectParamList.addAll(Arrays.asList(pole));
objectParamList.add(123);
objectParamList.addAll(seznam);
objectParamList.add(Math.random());
method(objectParamList.toArray());

Výsledek

Čau | Sun Jan 24 16:41:59 CET 2016 | AA | BB | CC | DD | 123 | XXX | YYY | ZZZ | 0.37927696865182803

Napsat komentář