为什么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关键字!如果不支持默认参数,有没有更好的?
答案 0 :(得分:2)
要处理对象创建,您可以使用Builder Design Pattern建议post。这样,您可以为某些字段设置默认值。
答案 1 :(得分:0)
没有比这更好的了,抱歉。如果您真的想知道为什么Java中不支持默认参数,您可能应该问Oracle。或者更好的是,提出一个建议,将其添加到下一版本的Java中。
答案 2 :(得分:0)
这很可能与设计决策有关。 Java设计者可能认为C / C ++中允许的默认参数可能会导致细微的错误。在语言的许多方面他们做了这样的事情,他们迫使开发人员明确他们的代码来减少这类问题。