Search code examples
javamethodsparametersoverloadingdefault-value

Are default parameter values supported by Java?


Possible Duplicate: Does Java support default parameter values?

Suppose I want to make default parameter value in C++, then we can express it as below.

void functionName(char *param1, int param2=2);

But if I want to make this in Java, then is it possible. Currently I am doing as below

public functionName(String param1)
{
    this(param1, 2);
}

public functionName(String param1, int param2)
{
..........
}

Solution

  • It is not possible in Java,but we can use the Builder Pattern, which is said this Stack Overflow answer.

    As described in the answer reference, the Builder Pattern lets you write code like

    Student s1 = new StudentBuilder().name("Eli").buildStudent();
    Student s2 = new StudentBuilder()
                     .name("Spicoli")
                     .age(16)
                     .motto("Aloha, Mr Hand")
                     .buildStudent();
    

    in which some fields can have default values or otherwise be optional.