Varargs in Java: Variable-Argument Methods
Varargs (...) lets a method accept zero or more arguments of the same type.
Real-World Use Cases
- utility logging methods
- SQL/criteria builders
- event publishing with optional metadata
Java 8 Example
public static int sum(int... values) {
int total = 0;
for (int value : values) {
total += value;
}
return total;
}
Java 21+ Example
public static String joinWithPrefix(String prefix, String... parts) {
return prefix + String.join(",", parts);
}
Varargs behavior is unchanged across Java 8, JDK 11, Java 17, Java 21, and Java 25. Improvements in newer versions are around surrounding language features, not varargs itself.
Rules
- only one varargs parameter allowed
- varargs must be last parameter
- internally treated as array
Key Takeaways
- Varargs improves API ergonomics for optional lists of inputs.
- Avoid ambiguous overloads with boxed/primitive varargs combinations.
- Prefer explicit overloads when readability is more important than flexibility.