Java是否支持默认参数值?

问题:

我遇到了一些具有以下结构的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支持这种语法吗?是否有什么理由为什么这两步语法比较好?

回答:

不,您发现的结构是Java如何处理它(即,重载而不是默认参数)。
对于构造函数,如果重载越来越复杂,See Effective Java: Programming Language Guide’s项1提示(考虑静态工厂方法而不是构造函数)。对于其他方法,重命名某些情况或使用参数对象可以帮助。这是当你有足够的复杂性,差异化是困难的。一个明确的例子是你必须使用参数的顺序进行区分,而不仅仅是数字和类型。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Does Java support default parameter values?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

73 + = 76