Avant la version 5 de Java, la seule façon de passer un nombre variable de paramètres à une méthode était de lui passer carrément un tableau. Aujourd'hui, la technique est plus simple, même si en fin de compte c'est toujours un tableau qui est passé. La différence est qu'il n'est plus nécessaire de créer explicitement ce tableau.
Dans l'exemple suivant, la méthode "maximum" reçoit un nombre variable de nombres entiers et retourne le plus grand de ceux-ci :
public class Varargs { // les trois points à la suite du type indique que le nombre de paramètres // est variable public int maximum(int... nombres) { int max = Integer.MIN_VALUE; // le plus petit entier possible (-231) // on accède aux paramètres comme on le ferait normalement avec un tableau for (int i = 0; i < nombres.length; i++) { if (nombres[i] > max) { max = nombres[i]; } } // parcour de style "foreach" /* for (int n : nombres) { if (n > max) { max = n; } } */ return max; } public static void main(String args[]) { int max = new Varargs().maximum(12, 0, 51, 7, 28, -33, 19); System.out.println("Le maximum est " + max); } }
Si la méthode possède d'autres paramètres, ceux-ci doivent figurer en premier dans la signature de la méthode. Exemple :
public int valider(int borneInf, int borneSup, int... valeurs) { ...
Le type des paramètre au nombre variable peut être un type primitif ou un type objet.