简体   繁体   English

哪种模拟Java中的可选参数更好?

[英]Which is the better way to simulate optional parameters in Java?

I have a Java method that takes 3 parameters, and I'd like it to also have a 4th "optional" parameter. 我有一个带有3个参数的Java方法,我希望它也有第4个“可选”参数。 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 . 我知道Java不直接支持可选参数,所以我在第4个参数中编码,当我不想传递它时,我传递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. (然后该方法在使用之前检查null 。)我知道这有点笨拙......但另一种方法是重载该方法,这将导致相当多的重复。

Which is the better way to implement optional method parameters in Java: using a nullable parameter, or overloading? 哪种是在Java中实现可选方法参数的更好方法:使用可空参数或重载? And why? 为什么?

Write a separate 3-parameter method that forwards to the 4-parameter version. 编写一个单独的3参数方法,转发到4参数版本。 Don't kludge it. 不要破坏它。

With so many parameters, you might want to consider a builder or similar. 有这么多参数,您可能需要考虑构建器或类似的。

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
    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM