varargs vararg java variadic-functions params method-declaration

vararg - java parameters command line



"Params" de Java en la firma del método? (3)

Como está escrito en respuestas anteriores, es varargs y declarado con ellipsis ( ... )

Además, puede pasar los tipos de valores y / o tipos de referencia o ambos mixtos (google Autoboxing ). Además, puede usar el parámetro del método como una matriz como se muestra con el método printArgsAlternate a continuación.

Código de demostración

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(); } }

Salida

Arguments: 3 true Hello! true 25.3 a X Arguments: 3 true Hello! true 25.3 a X

En C #, si desea que un método tenga un número indeterminado de parámetros, puede hacer que el parámetro final en el método params un params para que el parámetro del método parezca una matriz pero permita que todos los que usan el método pasen tantos parámetros de esa escriba como la persona que llama quiere.

Estoy bastante seguro de que Java admite un comportamiento similar, pero no puedo descubrir cómo hacerlo.


En Java se llama varargs , y la sintaxis se parece a un parámetro regular, pero con una elipsis ("...") después del tipo:

public void foo(Object... bar) { for (Object baz : bar) { System.out.println(baz.toString()); } }

El parámetro vararg siempre debe ser el último parámetro en la firma del método, y se accede como si hubiera recibido una matriz de ese tipo (por ejemplo, Object[] en este caso).


Esto hará el truco en Java

public void foo(String parameter, Object... arguments);

Debe agregar tres puntos ... y el parámetro varagr debe ser el último en la firma del método.