Difference between revisions of "Var-Args"
From Suhrid.net Wiki
Jump to navigationJump to searchLine 21: | Line 21: | ||
} | } | ||
+ | </syntaxhighlight> | ||
* The ellipsis can be located anywhere e.g. (int... nums) or (int ...nums) or (int ... nums) is fine. | * The ellipsis can be located anywhere e.g. (int... nums) or (int ...nums) or (int ... nums) is fine. | ||
* Essentially the method argument is treated as an array within the method. so nums is an int[] array. | * Essentially the method argument is treated as an array within the method. so nums is an int[] array. | ||
− | [[ | + | * Where it differs from an array is that For a var-args method, the method parameter can be passed "normally", instead of being passed as an array |
+ | * Example: | ||
+ | |||
+ | <syntaxhighlight lang="java5"> | ||
+ | |||
+ | public class VarArgs { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | System.out.println(vasum(2, 3, 4)); //Varargs invocation | ||
+ | System.out.println(arrsum(new int[] {2, 3, 4})); //Array invocation | ||
+ | } | ||
+ | |||
+ | public static int vasum(int ... nums) { | ||
+ | int sum = 0; | ||
+ | for(int i : nums) { | ||
+ | sum += i; | ||
+ | } | ||
+ | return sum; | ||
+ | } | ||
+ | |||
+ | public static int arrsum(int[] nums) { | ||
+ | int sum = 0; | ||
+ | for(int i : nums) { | ||
+ | sum += i; | ||
+ | } | ||
+ | return sum; | ||
+ | } | ||
+ | |||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | [[Category:OCPJP]] |
Revision as of 04:49, 24 August 2011
- Var-args are used to defined methods with variable argument lists.
- Syntax <type>... <varargname>
- Example:
public class VarArgs {
public static void main(String[] args) {
System.out.println(sum(2, 3, 4));
}
public static int sum(int... nums) {
int sum = 0;
for(int i : nums) {
sum += i;
}
return sum;
}
}
- The ellipsis can be located anywhere e.g. (int... nums) or (int ...nums) or (int ... nums) is fine.
- Essentially the method argument is treated as an array within the method. so nums is an int[] array.
- Where it differs from an array is that For a var-args method, the method parameter can be passed "normally", instead of being passed as an array
- Example:
public class VarArgs {
public static void main(String[] args) {
System.out.println(vasum(2, 3, 4)); //Varargs invocation
System.out.println(arrsum(new int[] {2, 3, 4})); //Array invocation
}
public static int vasum(int ... nums) {
int sum = 0;
for(int i : nums) {
sum += i;
}
return sum;
}
public static int arrsum(int[] nums) {
int sum = 0;
for(int i : nums) {
sum += i;
}
return sum;
}
}