In java we can create methods that
takes variable number of arguments. This feature is called varargs or
variable number of arguments. The method which accepts variable
number of arguments is called varargs method.
Syntax
returnType
methodName(dataType … parameterName){
}
"..." tells the
compiler that this is a vararg.
Example
class VarargsEx{ public void printData(int ... a){ System.out.println("Parameters are " + a.length); for(int i=0; i < a.length; i++) System.out.print(a[i] + " "); System.out.println(); } public static void main(String args[]){ VarargsEx obj = new VarargsEx(); obj.printData(1); obj.printData(1,2); obj.printData(1,2,3); } }
Output
Parameters are 1 1 Parameters are 2 1 2 Parameters are 3 1 2 3
The syntax for the method printData,
tells the compiler, that this method can accept zero or more
arguments. So all the calls like below are valid.
obj.printData(1);
obj.printData(1,2);
obj.printData(1,2,3);
The variable number of
parameters (varargs) must be at last while defining a method with
varargs.
There must be only one vararg
parameter in method definition.
Some
Points to Remember
1. The variable number of
parameters (varargs) must be at last while defining a method with
varargs.
Example
class VarargsEx{ public void printData(int ... a, float f1){ System.out.println("Parameters are " + a.length); for(int i=0; i < a.length; i++) System.out.print(a[i] + " "); System.out.println(); } }
When you try to compile the above
program, compiler will generates error like below
VarargsEx.java:3: error: ')' expected public void printData(int ... a, float f1){ ^ VarargsEx.java:3: error: ';' expected public void printData(int ... a, float f1){ ^ 2 errors
valid
method definition is
public void
printData(float f1, int ... a)
2.
There must be only one vararg parameter in method definition.
Example
class VarargsEx{ public void printData(int ... a1, int ... a2){ } }
When
you try to compile the above code, compiler throws error like below
VarargsEx.java:3: error: ')' expected public void printData(int ... a1, int ... a2){ ^ VarargsEx.java:3: error: <identifier> expected public void printData(int ... a1, int ... a2){ ^ VarargsEx.java:3: error: <identifier> expected public void printData(int ... a1, int ... a2){ ^ 3 errors
No comments:
Post a Comment