为了账号安全,请及时绑定邮箱和手机立即绑定

Java支持默认参数值吗?

Java支持默认参数值吗?

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支持这种语法吗?这两个步骤的语法有什么更好的理由吗?
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

不,您发现的结构是Java如何处理它(也就是说,使用重载而不是默认参数)。

对于建筑工人来说,参见有效Java:编程语言指南的项目1提示(考虑静态工厂方法而不是构造函数),如果重载变得复杂。对于其他方法,重命名某些情况或使用参数对象可能会有所帮助。这是当你有足够的复杂性,区分是困难的。一个明确的例子是,你必须用参数的顺序来区分,而不仅仅是数字和类型。


查看完整回答
反对 回复 2019-07-12
?
侃侃无极

TA贡献2051条经验 获得超10个赞

不,但你可以用建造者模式,如上文所述这个堆栈溢出回答.

如链接答案中所述,Builder模式允许您编写如下代码

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

其中,某些字段可以具有默认值,也可以是可选的。


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 1384 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信