Что делает “общедоступного Ведущего прогноза погоды (Целое число …, zip) {” означают в Java

Даже при том, что я программировал rofessionally в течение многих лет, серия "Business Objects" Rocky Lhotka о его платформе CSLA была книгой, которая открыла мои глаза.

Его идеи он получил меня взволнованный шаблонами разработки программного обеспечения и теорией снова. Это установило меня на пути нового интереса к изучению, как быть лучшим разработчиком, и не просто приобретением знаний о последнем управлении Ну-и-дела-свиста или библиотеке. (Не понимайте меня превратно, я все еще люблю хорошую техническую книгу также - необходимо поддержать на высоком уровне!)

5
задан Ankur 22 July 2009 в 14:46
поделиться

5 ответов

Это «varargs», синтаксический сахар, который позволяет вам вызывать конструктор следующими способами:

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

Скрытые аргументы передаются конструктору в виде массива, но вы это делаете не нужно создавать массив для его вызова.

13
ответ дан 18 December 2019 в 06:51
поделиться

Из руководств по Java :

Вы можете использовать конструкцию varargs для передачи произвольного числа значений методу. Вы используете varargs, когда не знаете, сколько аргументов определенного типа будет передано методу. Это ярлык для создания массива вручную (предыдущий метод мог использовать varargs, а не массив).

Чтобы использовать varargs, после типа последнего параметра указывается многоточие (три точки, ...), затем пробел и имя параметра. Затем метод может быть вызван с любым количеством этих параметров, включая ни одного.

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
}

Как видите, внутри метода углы обрабатываются как массив. Метод может быть вызван либо с массивом, либо с последовательностью аргументов. Код в теле метода в любом случае будет рассматривать параметр как массив.

3
ответ дан 18 December 2019 в 06:51
поделиться

Это «варарг». Он может обрабатывать любое количество аргументов Integer , то есть

new Weatherman(1);

так же действителен, как

new Weatherman();

или

new Weatherman(1, 7, 12);

. В рамках метода вы получаете доступ к параметрам как массив Integer .

5
ответ дан 18 December 2019 в 06:51
поделиться

Если я хорошо помню, он используется, когда есть переменное количество параметров

0
ответ дан 18 December 2019 в 06:51
поделиться

Из руководств по Java :

Вы можете использовать конструкцию под названием varargs для передачи произвольного количество значений метода. Вы используете varargs, когда не знаете, сколько аргументов определенного типа будет передано методу. Это ярлык для создания массива вручную (предыдущий метод мог использовать varargs, а не массив).

Чтобы использовать varargs, вы указываете тип последнего параметра многоточием (три точки, ...), затем пробелом и именем параметра. Затем метод может быть вызван с любым количеством этих параметров, включая ни одного.

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
}

Вы можете видеть, что внутри метода углы обрабатываются как массив. Метод может быть вызван либо с массивом, либо с последовательностью аргументов. Код в теле метода в любом случае будет обрабатывать параметр как массив.

2
ответ дан 18 December 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: