Variadic Functions in Java

Here’s the translated code and explanation in Java format:

Variadic functions can be called with any number of trailing arguments. For example, System.out.printf is a common variadic function.

Here’s a function that will take an arbitrary number of ints as arguments.

public class VariadicFunctions {
    public static void sum(int... nums) {
        for (int num : nums) {
            System.out.print(num + " ");
        }
        int total = 0;
        for (int num : nums) {
            total += num;
        }
        System.out.println(total);
    }

    public static void main(String[] args) {
        sum(1, 2);           // Variadic function called with individual arguments
        sum(1, 2, 3);        // Variadic function called with individual arguments

        int[] nums = {1, 2, 3, 4}; // If you already have multiple args in an array
        sum(nums);            // apply them to a variadic function using func(array)
    }
}

To run the program, compile the code into a .class file and then use java to execute it.

$ javac VariadicFunctions.java
$ java VariadicFunctions
1 2 3
1 2 3 6
1 2 3 4 10

Another key aspect of functions in Java is their ability to form closures, which we’ll look at next.