在 Java 中模拟可选参数的更好方法是什么?

发布于 2024-08-25 03:11:36 字数 231 浏览 2 评论 0原文

我有一个带有 3 个参数的 Java 方法,并且我希望它还有第四个“可选”参数。我知道 Java 不直接支持可选参数,因此我编写了第四个参数,当我不想传递它时,我传递 null。 (然后该方法在使用它之前检查 null 。)我知道这有点笨拙......但另一种方法是重载该方法,这将导致相当多的重复。

在 Java 中实现可选方法参数的更好方法是:使用可为空参数还是重载?为什么?

I have a Java method that takes 3 parameters, and I'd like it to also have a 4th "optional" parameter. I know that Java doesn't support optional parameters directly, so I coded in a 4th parameter and when I don't want to pass it I pass null. (And then the method checks for null before using it.) I know this is kind of clunky... but the other way is to overload the method which will result in quite a bit of duplication.

Which is the better way to implement optional method parameters in Java: using a nullable parameter, or overloading? And why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黎夕旧梦 2024-09-01 03:11:36

编写一个单独的 3 参数方法,转发到 4 参数版本。不要乱搞它。

由于参数如此之多,您可能需要考虑构建器或类似的工具。

Write a separate 3-parameter method that forwards to the 4-parameter version. Don't kludge it.

With so many parameters, you might want to consider a builder or similar.

浅黛梨妆こ 2024-09-01 03:11:36

使用这样的东西:

public class ParametersDemo {

    public ParametersDemo(Object mandatoryParam1, Object mandatoryParam2, Object mandatoryParam3) {
    this(mandatoryParam1,mandatoryParam2,mandatoryParam3,null);
    }


    public ParametersDemo(Object mandatoryParam1, Object mandatoryParam2, Object mandatoryParam3, Object optionalParameter) {
    //create your object here, using four parameters
    }

}

Use something like this:

public class ParametersDemo {

    public ParametersDemo(Object mandatoryParam1, Object mandatoryParam2, Object mandatoryParam3) {
    this(mandatoryParam1,mandatoryParam2,mandatoryParam3,null);
    }


    public ParametersDemo(Object mandatoryParam1, Object mandatoryParam2, Object mandatoryParam3, Object optionalParameter) {
    //create your object here, using four parameters
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文