Многоточечные нотации Java - Varargs - PullRequest
61 голосов
/ 24 сентября 2011

Я только что подтвердил точечную запись для объявления метода с несколькими аргументами
как это:

public function getURLs(URL... urls){
    for(int i = 0; i < urls.length; i++){
        // walk through array of arguments
    }
}

И используя вот так

getURLs(url1, url2, url3);

где эти аргументы метода неявно преобразуются в URL[] urls

  1. Правильно ли я понял его поведение?
  2. Где находится документация к этому синтаксису?
  3. Из какой версии JRE (J2ME, J2SE, Dalvik) это поддерживается?

Ответы [ 2 ]

63 голосов
/ 24 сентября 2011

Да, вот как это работает. Аргументы автоматически помещаются в массив. Аргумент "urls" ведет себя как URL[]. Varargs описаны здесь . Они были представлены в Java 1.5, поэтому доступны в J2SE 1.5+ и во всех Android, так как он поддерживает языковые функции Java 1.5+. Ни одна версия JavaME / J2ME не поддерживает его.

12 голосов
/ 24 сентября 2011

Синтаксис был введен в Java 5 и называется varargs:

http://download.oracle.com/javase/1,5.0/docs/guide/language/varargs.html

...