我遇到了一些具有以下结构的Java代码:
public MyParameterizedFunction(String param1, int param2) { this(param1, param2, false); } public MyParameterizedFunction(String param1, int param2, boolean param3) { //use all three parameters here }
我知道在C ++中,我可以为参数分配一个默认值。例如:
void MyParameterizedFunction(String param1, int param2, bool param3=false);
Java是否支持这种语法?有什么理由使两步语法更可取?
不,但是你可以使用构建器模式,如本堆栈溢出答案中所述。
如链接答案中所述,构建器模式使你可以编写如下代码
Student s1 = new StudentBuilder().name("Eli").buildStudent(); Student s2 = new StudentBuilder() .name("Spicoli") .age(16) .motto("Aloha, Mr Hand") .buildStudent();
其中某些字段可以具有默认值,否则为可选。