java - Java 是否支持默认参数值?

标签 java methods parameters overloading default-parameters

我遇到了一些具有以下结构的 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 项提示(考虑静态工厂方法而不是构造函数)

如果重载变得复杂。对于其他方法,重命名某些情况或使用参数对象会有所帮助。

这是当你有足够的复杂性,难以区分的时候。一个明确的情况是您必须使用参数的顺序来区分,而不仅仅是数字和类型。

关于java - Java 是否支持默认参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/997482/

相关文章:

c# - 在 C# 中将泛型委托(delegate)作为方法参数传递

java - 如何将 '.jar'库文件导入Unity?

java - Jenkins 插件 : Select filled by model

java - 如何从类的其他方法访问该方法?

如果对象存在,则调用方法的 Javascript 速记

r - 如何从 glm.nb() 中获取 "prob"参数?

java - 启动tomcat时如何传递-D附加参数?

java - 在 bootstartup 时通过 Java 代码删除工作流程

java - 当某些模块未编译时如何在 IntelliJ 中运行单元测试?

ios - Swift 中的 Objective-C block 出现问题