为什么java中不支持默认参数?

时间:2014-12-26 14:58:13

标签: java c#

为什么java语言不支持默认参数?

例如,对于在具有2和1和0参数的另一个类型构造函数中调用具有3个参数的构造函数,我们必须手动传递所有参数!它们(参数)不像其他语言一样是可选的(为每个构造函数自动设置少于3个参数的默认参数),为什么?

在C#代码中这样:

static void Method(int value = 1, string name = "Perl")

如果我们可以做得更好一点:

Test(String name,int code,int age)
{
     setTest(name,code,age);
} 
Test(String name,int code)
{
     this(name,code,0);
}
Test(String name)
{
     this(name,0,0);
}

所以,我们也可以使用final关键字!如果不支持默认参数,有没有更好的?

3 个答案:

答案 0 :(得分:2)

要处理对象创建,您可以使用Builder Design Pattern建议post。这样,您可以为某些字段设置默认值。

答案 1 :(得分:0)

没有比这更好的了,抱歉。如果您真的想知道为什么Java中不支持默认参数,您可能应该问Oracle。或者更好的是,提出一个建议,将其添加到下一版本的Java中。

答案 2 :(得分:0)

这很可能与设计决策有关。 Java设计者可能认为C / C ++中允许的默认参数可能会导致细微的错误。在语言的许多方面他们做了这样的事情,他们迫使开发人员明确他们的代码来减少这类问题。