Skip to content

Commit 5d0d7f4

Browse files
committed
feat: Add VarArgs class demonstrating Java variable arguments (varargs)
WHAT the code does: - Defines a `VarArgs` class showcasing different uses of varargs (`...`). - `fun(int... v)`: accepts variable number of integers and prints them as an array. - `demo(int... v)`: overloaded method handling integer varargs. - `demo(String... v)`: overloaded method handling string varargs. - `multiple(int a, int b, String... v)`: combines fixed parameters with varargs. - `main()` demonstrates calling each method with different argument sets. WHY this matters: - Demonstrates how **varargs** allow flexible method calls without manually creating arrays. - Shows **method overloading** with different vararg types. - Useful for simplifying APIs where the number of parameters is not fixed. - Highlights that varargs are internally treated as arrays. HOW it works: 1. `fun(1, 2, 3, 4)` → prints `[1, 2, 3, 4]`. 2. `multiple(2, 3, "Kunal", "Rahul", "dvytsbhusc")` → prints integers and string list. 3. `demo(5, 6, 7)` → resolves to `demo(int... v)` → prints `[5, 6, 7]`. 4. `demo("A", "B", "C")` → resolves to `demo(String... v)` → prints `[A, B, C]`. Tips & gotchas: - Only one varargs parameter allowed per method, and it must be the last parameter. - Varargs can be called with zero arguments (e.g., `fun()` → prints empty array). - Ambiguity may arise if overloaded methods have similar vararg signatures. - Varargs incur slight performance overhead since arguments are wrapped in an array. Use-cases: - Flexible APIs (e.g., logging methods like `log(String... messages)`). - Utility methods where number of inputs may vary. - Cleaner code for operations on collections of arguments. - Educational example for **method overloading and varargs**. Short key: class-varargs-overloading-demo. Signed-off-by: https://github.com/Someshdiwan <[email protected]>
1 parent 3e5bd29 commit 5d0d7f4

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

Section10Methods/Methods 2.O/src/VarArgs.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,33 @@
22

33
public class VarArgs {
44
public static void main(String[] args) {
5-
// fun();
6-
// multiple(2, 3, "Kunal", "Rahul", "dvytsbhusc");
7-
// demo();
5+
fun(1, 2, 3, 4); // int varargs
6+
7+
multiple(2, 3, "Kunal", "Rahul", "dvytsbhusc"); // mixed
8+
9+
demo(5, 6, 7); // int varargs
10+
11+
demo("A", "B", "C"); // String varargs
812
}
913

14+
// Works with int array
1015
static void demo(int ...v) {
11-
System.out.println(Arrays.toString(v));
16+
System.out.println("Int demo: " + Arrays.toString(v));
1217
}
1318

19+
// Works with String array
1420
static void demo(String ...v) {
15-
System.out.println(Arrays.toString(v));
21+
System.out.println("String demo: " + Arrays.toString(v));
1622
}
1723

24+
// Mixed parameters: 2 fixed ints + varargs for strings
1825
static void multiple(int a, int b, String ...v) {
19-
26+
System.out.println("a = " + a + ", b = " + b);
27+
System.out.println("Strings: " + Arrays.toString(v));
2028
}
2129

30+
// Simple int varargs
2231
static void fun(int ...v) {
23-
System.out.println(Arrays.toString(v));
32+
System.out.println("Fun: " + Arrays.toString(v));
2433
}
2534
}

0 commit comments

Comments
 (0)