2011-07-02 26 views
6

Jaka jest różnica, gdy piszemy String [] a w głównej metodzie i String ... a?Różnica między String [] a i String ... a

public static void main(String[]a) 

i

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

możliwy duplikat listy parametrów metody varags w Javie vs. tablica) (http://stackoverflow.com/questions/5405673/java-varags-method-param-list-vs-array) –

Odpowiedz

8

Pierwszy oczekiwać jeden parametr, który jest tablicą pszczół.

Drugi akceptuje zero lub więcej parametrów String. Przyjmuje również tablicę łańcuchów.

+0

Hej, dziękuję za odpowiedź ... – Surbhi

+3

Drugi w rzeczywistości akceptuje również parametr String-array. – Stim

3

Drugi nazywa się varargs i został wprowadzony w Javie 5. Uwalnia od jawnego tworzenia tablicy, kiedy trzeba przekazać zero lub więcej parametrów do metody.

8
public static void main(String[] a) 

Ten musi zostać wywołany z pojedynczym argumentem typu String [] lub null.

public static void main(String...a) 

Ten może być wywołana jeden argument typu łańcuchowego [], lub za pomocą dowolnej liczby ciągów argumentów, takich jak główne ("a", "b", "c"). Jednak kompilator będzie narzekał, jeśli przekażesz wartość null, ponieważ nie może powiedzieć, czy masz na myśli String [] o wartości null, czy tablicę 1 pustego łańcucha.

Wewnątrz main(), w obu przypadkach zmienna a to String[].

Ponieważ jest to main, możesz nie myśleć o tym, jak to się nazywa ... Zazwyczaj jest to pierwsza rzecz. Przestawiłem się jednak na używanie drugiego formularza dla wszystkich moich sieci; łatwiej jest przekazywać do niego argumenty do testowania.

+0

Hej dziękuję za wyjaśnienie. – Surbhi

Powiązane problemy