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

时间:2010-03-17 15:11:21

标签: java null overloading optional-parameters

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

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

2 个答案:

答案 0 :(得分:10)

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

如果有这么多参数,您可能需要考虑一个构建器或类似的东西。

答案 1 :(得分:4)

使用类似的东西:

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
    }

}