2011-07-02 16 views
6

¿Cuál es la diferencia cuando escribimos String [] a en el método principal y String ... a?Diferencia entre String [] a y String ... a

public static void main(String[]a) 

y

public static void main(String...a) 
+0

posible duplicado de [Java varags método param list vs. array] (http://stackoverflow.com/questions/5405673/java-varags-method-param-list-vs-array) –

Respuesta

8

El primero esperar un parámetro, que es una matriz de cadenas.

El segundo acepta cero o más parámetros de cadena. También acepta una matriz de cadenas.

+0

Hola gracias por la respuesta ... – Surbhi

+3

El segundo realmente también acepta un parámetro String-array. – Stim

3

El segundo se llama varargs y se introdujo en Java 5. Lo alivia de crear explícitamente una matriz cuando necesita pasar cero o más parámetros a un método.

8
public static void main(String[] a) 

Éste debe ser llamado con un solo argumento de tipo String [], o nulo.

public static void main(String...a) 

Éste se puede llamar con un solo argumento de tipo String [], OR con cualquier número de argumentos de cadena, como principal ("a", "b", "c"). Sin embargo, el compilador se quejará si pasa nulo, ya que no puede decir si se refiere a una cadena [] de valor nulo, o una matriz de 1 cadena nula.

Dentro de main(), en cualquier caso, la variable a es String[].

Ya que es main, es posible que no pensar en cómo sería llamado ... Por lo general es lo primero. Pero he cambiado a usar el segundo formulario para todos mis principales; es más fácil pasarle argumentos para probarlo.

+0

Hola gracias por la explicación. – Surbhi

Cuestiones relacionadas