Est-il possible de déclarer une méthode qui permettra un nombre variable de paramètres ?
Quel est le symbolisme utilisé dans la définition qui indique que la méthode devrait permettre un nombre variable de paramètres ?
Réponse : varargs
Est-il possible de déclarer une méthode qui permettra un nombre variable de paramètres ?
Quel est le symbolisme utilisé dans la définition qui indique que la méthode devrait permettre un nombre variable de paramètres ?
Réponse : varargs
C'est exact. Vous pouvez en trouver plus à 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.
Pour différents types d'arguments, il y a 3 points :
public void foo(Object... x) {
String myVar1 = x.length > 0 ? (String)x[0] : "Hello";
int myVar2 = x.length > 1 ? Integer.parseInt((String) x[1]) : 888;
}
Alors appelez-le
foo("Hii");
foo("Hii", 146);
pour la sécurité, utilisez comme ceci :
if (!(x[0] instanceof String)) { throw new IllegalArgumentException("..."); }
Le principal inconvénient de cette approche est que si les paramètres optionnels sont de différents types, vous perdez la vérification de type statique. S'il vous plaît, voyez plus de variations.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.