Le framework Spring utilise des méthodes où vous pouvez passer autant d'arguments que vous le souhaitez.
Je voudrais écrire une fonction qui peut également prendre une quantité illimitée de données. Comment s'appelle cette fonctionnalité pour que je puisse en savoir plus. Ou comment puis-je le définir?
Merci beaucoup.
Cela s'appelle varargs .
Il permet à une méthode de prendre n'importe quel nombre d'arguments. Ils sont accessibles sous forme de tableau dans la méthode:
public void foo(String... args) {
for (String arg : args) {
// do smth with arg.
}
}
C'est sucre syntaxique . Le compilateur masque la création du tableau, donc au lieu de
bar.foo(new String[] {"1", "2", "3"});
vous écrivez
bar.foo("1", "2", "3");
Pour ajouter la réponse de Bozho, vous pouvez également avoir d'autres arguments dans votre méthode avant varargs:
// foo(13, "foo", "bar", "baz");
// will print:
// 13 - |foo||bar||baz|
public void foo(int a, String... b) {
System.out.println(a + " - ");
for (String c : b) {
System.out.print("|" + c + "|");
}
}
Cependant, vous ne pouvez pas avoir d'arguments d'un type différent après. Ceux-ci ne fonctionnent pas:
public void bar(String... b, int b);
public void foo(int a, String... b, int b);