web-dev-qa-db-fra.com

Numéro de variable Java ou arguments d'une méthode

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

115
user69514

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.
231
BalusC
Variable number of arguments

Il est possible de passer un nombre variable d'arguments à une méthode. Cependant, il y a quelques restrictions:

  • Le nombre variable de paramètres doit tous être du même type
  • Ils sont traités comme un tableau dans la méthode
  • Ils doivent être le dernier paramètre de la méthode

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

13
Abey Ella

Oui c'est possible:

public void myMethod(int...numbers) { ... }
13
Dolph
5
Roland Bouman

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; 
   }
}
0
crazy_coder