...
указывает на varargs
в Java. Атрибут [vararg]
указывает, что метод принимает переменное количество параметров. Для этого последний параметр должен быть безопасным массивом типа VARIANT, содержащим все остальные параметры:
[vararg [, optional-attributes]] return-type function-name(
[optional-param-attributes] param-list,
SAFEARRAY(VARIANT) last-param-name);
Синтаксис varargs в основном позволяет вам указать, что есть возможные параметры, верно? Они могут быть там, или не могут быть там. Это цель трех точек. Когда вы вызываете метод, вы можете вызывать его с этими параметрами или без них. Это было сделано, чтобы не передавать массивы в методы.
Взгляните на это:
См. Когда вы используете varargs в Java?
final public class Main
{
private void show(int []a)
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+"\t");
}
}
private void show(Object...a)
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+"\t");
}
System.out.println("\nvarargs called");
}
public static void main(String... args) //See also here.
{
int[]temp=new int[]{1,2,3,4};
Main main=new Main();
main.show(temp);
main.show(); //<-- This is possible.
}
}
Именно по этой причине varargs
в принципе не рекомендуется при перегрузке методов.
System.out.printf();
является примером varargs
и определяется следующим образом.
public PrintStream printf(String format, Object ... args)
{
return format(format, args);
}
format – строка формата, как описано в разделе Синтаксис строки формата.
args – аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Количество аргументов является переменным и может быть равно нулю. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в спецификации виртуальной машины Java. Поведение при нулевом аргументе зависит от преобразования.
person
Lion
schedule
10.01.2012