2011-07-02 19 views
6

Whats sự khác biệt khi chúng ta viết String [] a trong phương thức chính và String ... a?Sự khác biệt giữa Chuỗi [] a và Chuỗi ... a

public static void main(String[]a) 

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

có thể trùng lặp của [danh sách tham số phương pháp var var Java so với mảng] (http://stackoverflow.com/questions/5405673/java-varags-method-param-list-vs-array) –

Trả lời

8

Người đầu tiên hy vọng một tham số, đó là một mảng của Strings.

Phương thức thứ hai chấp nhận không hoặc nhiều tham số Chuỗi. Nó cũng chấp nhận một mảng các chuỗi.

+0

Xin cảm ơn bạn đã trả lời ... – Surbhi

+3

Thực tế thứ hai cũng chấp nhận tham số String-array. – Stim

3

Cái thứ hai được gọi là varargs và được giới thiệu trong Java 5. Nó giúp bạn thoát khỏi việc tạo một mảng rõ ràng khi bạn cần truyền 0 hoặc nhiều tham số cho phương thức.

8
public static void main(String[] a) 

Điều này phải được gọi với một đối số kiểu String [] hoặc null.

public static void main(String...a) 

Điều này có thể được gọi với một đối số kiểu String [], HOẶC với bất kỳ số đối số Chuỗi nào, như chính ("a", "b", "c"). Tuy nhiên, trình biên dịch sẽ phàn nàn nếu bạn vượt qua null, vì nó không thể biết nếu bạn có nghĩa là một chuỗi [] của giá trị null, hoặc một mảng của 1 chuỗi rỗng.

Bên trong main(), trong cả hai trường hợp, biến aString[].

Vì đó là main, bạn có thể không nghĩ về cách nó sẽ được gọi ... Thông thường đó là điều đầu tiên. Nhưng tôi đã chuyển sang sử dụng hình thức thứ hai cho tất cả các nguồn điện của tôi; nó dễ dàng hơn để vượt qua các đối số cho nó để thử nghiệm.

+0

Xin cảm ơn bạn đã giải thích. – Surbhi

Các vấn đề liên quan