2009-07-22 7 views

Trả lời

13

Đó là những "varargs," cú pháp đường cho phép bạn gọi các nhà xây dựng theo các cách sau:

new Weatherman() 
new Weatherman(98115); 
new Weatherman(98115, 98072); 
new Weatherman(new Integer[0]); 

Theo bao gồm các đối số được truyền cho các nhà xây dựng như một mảng, nhưng bạn làm không cần phải xây dựng một mảng để gọi nó.

0

Nếu tôi nhớ tốt, nó được sử dụng khi có một số biến số tham số

5

Đó là “vararg”. Nó có thể xử lý bất kỳ số lượng Integer đối số, ví dụ:

new Weatherman(1); 

được chỉ có giá trị như

new Weatherman(); 

hoặc

new Weatherman(1, 7, 12); 

Trong phương pháp này bạn truy cập vào các thông số như một mảng Integer.

2

Từ Java tutorials:

Bạn có thể sử dụng một cấu trúc gọi là varargs để vượt qua một số tùy ý các giá trị đến một phương pháp. Bạn sử dụng varargs khi bạn không biết có bao nhiêu loại đối số cụ thể sẽ được chuyển cho phương thức. Đó là một phím tắt để tạo ra một mảng bằng tay (phương pháp trước đó có thể đã sử dụng varargs chứ không phải là một mảng).

Để sử dụng varargs, bạn thực hiện theo loại tham số cuối cùng bằng dấu ba chấm (ba dấu chấm, ...), sau đó là dấu cách và tên thông số. Phương pháp này sau đó có thể được gọi với bất kỳ số nào của tham số đó, bao gồm cả tham số.

public Polygon polygonFrom(Point... corners) { 
    int numberOfSides = corners.length; 
    double squareOfSide1, lengthOfSide1; 
    squareOfSide1 = (corners[1].x - corners[0].x)*(corners[1].x - corners[0].x) 
     + (corners[1].y - corners[0].y)*(corners[1].y - corners[0].y) ; 
    lengthOfSide1 = Math.sqrt(squareOfSide1); 
    // more method body code follows that creates 
    // and returns a polygon connecting the Points 
} 

Bạn có thể thấy rằng, bên trong phương pháp này, các góc được đối xử như một mảng. Phương thức này có thể được gọi với một mảng hoặc với một chuỗi các đối số. Mã trong phần thân phương thức sẽ coi tham số là một mảng trong cả hai trường hợp.

3

Bạn đang xem varargs feature của Java, có sẵn từ Java 1.5.

zips là một mảng của số nguyên bên trong hàm tạo, nhưng hàm tạo có thể được gọi với một số biến đối số.