Skip to content

Variable Arguments

Using varargs as a parameter for a method definition, it is possible to pass either an array or a sequence of arguments. If a sequence of arguments are passed, they are converted into an array automatically.

This example shows both an array and a sequence of arguments being passed into the printVarArgArray() method, and how they are treated identically in the code inside the method:

public class VarArgs {       
    // this method will print the entire contents of the parameter passed in       
    void printVarArgArray(int... x) {        
        for (int i = 0; i < x.length; i++) {            
            System.out.print(x[i] + ",");        
        }    
    }       
    public static void main(String args[]) {       
        VarArgs obj = new VarArgs();              
        //Using an array:       
        int[] testArray = new int[]{10, 20};   
        obj.printVarArgArray(testArray);    
        System.out.println(" ");           
        //Using a sequence of arguments    
        obj.printVarArgArray(5, 6, 5, 8, 6, 31);  
    }
}

If you define the method like this, it will give compile-time errors.

void method(String... a, int... b , int c){} 
// Compile time error (multiple varargs )

void method(int... a, String b){} 
// Compile time error (varargs must be the last argument 

Exercise

  • Exercise 1:
    • Create a method with two varargs: int and String.