Est-il possible de déclarer une méthode qui autorisera un nombre variable de paramètres?
Quel est le symbolisme utilisé dans la définition pour indiquer que la méthode devrait permettre un nombre variable de paramètres?
Réponse: varargs
C'est correct. Vous trouverez plus d'informations à ce sujet dans le guide Oracle sur varargs .
Voici un exemple:
void foo(String... args) {
for (String arg : args) {
System.out.println(arg);
}
}
qui peut être appelé comme
foo("foo"); // Single arg.
foo("foo", "bar"); // Multiple args.
foo("foo", "bar", "lol"); // Don't matter how many!
foo(new String[] { "foo", "bar" }); // Arrays are also accepted.
foo(); // And even no args.
Variable number of arguments
Il est possible de passer un nombre variable d'arguments à une méthode. Cependant, il y a quelques restrictions:
Pour comprendre ces restrictions, considérons la méthode, dans l'extrait de code suivant, utilisée pour renvoyer le plus grand entier dans une liste d'entiers:
private static int largest(int... numbers) {
int currentLargest = numbers[0];
for (int number : numbers) {
if (number > currentLargest) {
currentLargest = number;
}
}
return currentLargest;
}
source Guide d'étude du programmeur Java SE 7 certifié Oracle Associate 2012
Oui c'est possible:
public void myMethod(int...numbers) { ... }
Yup ... depuis Java 5: http://Java.Sun.com/j2se/1.5.0/docs/guide/language/varargs.html
Oui, Java autorise vargs
dans le paramètre de méthode.
public class Varargs
{
public int add(int... numbers)
{
int result = 1;
for(int number: numbers)
{
result= result+number;
} return result;
}
}