2009-07-22 18 views

Odpowiedz

13

Są „varargs” cukier syntaktyczny który pozwala wywołać konstruktor w jeden z następujących sposobów:

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

pod kołdrą argumenty są przekazywane do konstruktora jako tablicę, ale ty nie trzeba budować tablicy, aby ją wywołać.

0

Jeśli dobrze pamiętam, to stosuje się, gdy nie ma zmienną liczbę parametrów

5

To „vararg”. może obsługiwać dowolną liczbę Integer argumentów, tj

new Weatherman(1); 

jest tak samo ważne jak

new Weatherman(); 

lub

new Weatherman(1, 7, 12); 

W sposobie uzyskiwania dostępu parametry jako Integer tablicy.

2

Z Java tutorials:

Można użyć konstrukt o nazwie varargs przekazać dowolną liczbę wartości do metody. Używasz varargs, gdy nie wiesz, ile z określonego typu argumentów zostanie przekazanych do metody. Jest to skrót do ręcznego tworzenia tablicy (w poprzedniej metodzie można było użyć varargs zamiast tablicy).

Aby użyć varargs, śledzić typ ostatniego parametru przez wielokropek (trzy kropki, ...), następnie spację i nazwę parametru. Metodę można następnie wywołać z dowolną liczbą tego parametru, w tym brakiem.

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 
} 

Można zobaczyć, że wewnątrz metody, rogi traktowany jest jak tablicy. Metodę można wywołać za pomocą tablicy lub sekwencji argumentów. Kod w treści metody traktuje parametr jako tablicę w obu przypadkach.

3

Widzisz varargs feature Java, dostępny od wersji Java 1.5.

zipsy to tablica Integer wewnątrz konstruktora, ale konstruktor może zostać wywołany ze zmienną liczbą argumentów.