En C #, si vous voulez qu'une méthode ait un nombre indéterminé de paramètres, vous pouvez faire du paramètre final dans la signature de la méthode un params
pour que le paramètre de la méthode ressemble à un tableau mais permette à tous ceux qui utilisent la méthode de passer autant de paramètres de ce type que l'appelant le souhaite.
Je suis assez sûr Java supporte un comportement similaire, mais je ne peux pas savoir comment le faire.
Dans Java cela s'appelle varargs , et la syntaxe ressemble à un paramètre normal, mais avec des points de suspension ("...") après le type:
public void foo(Object... bar) {
for (Object baz : bar) {
System.out.println(baz.toString());
}
}
Le paramètre vararg doit toujours être le dernier paramètre dans la signature de la méthode, et est accessible comme si vous aviez reçu un tableau de ce type (par exemple Object[]
dans ce cas).
Cela fera l'affaire en Java
public void foo(String parameter, Object... arguments);
Vous devez ajouter trois points ...
et le paramètre varagr
doivent être les derniers dans la signature de la méthode.
Comme il est écrit sur les réponses précédentes, il est varargs
et déclaré avec Ellipsis
(...)
De plus, vous pouvez transmettre les types de valeur et/ou les types de référence ou les deux mélangés (google Autoboxing). De plus, vous pouvez utiliser le paramètre de méthode comme un tableau comme indiqué avec la méthode printArgsAlternate
ci-dessous.
public class VarargsDemo {
public static void main(String[] args) {
printArgs(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
printArgsAlternate(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
}
private static void printArgs(Object... arguments) {
System.out.print("Arguments: ");
for(Object o : arguments)
System.out.print(o + " ");
System.out.println();
}
private static void printArgsAlternate(Object... arguments) {
System.out.print("Arguments: ");
for(int i = 0; i < arguments.length; i++)
System.out.print(arguments[i] + " ");
System.out.println();
}
}
Arguments: 3 true Hello! true 25.3 a X
Arguments: 3 true Hello! true 25.3 a X