调用具有一个可选参数的方法

时间:2019-06-06 21:19:26

标签: java methods java-8 optional

我遇到了类似的解决方案,但我需要更多信息。根据我的用例,我创建了一个方法,该方法带有两个参数,其中一个是必需参数,另一个是可选参数。

public void myMethod(Required req){ ... }

在我的应用程序中,有许多调用myMethod的方法。我需要通过向myMethod中添加另一个不需要的参数来更新它,如下所示:

public void myMethod(Required req, NotRequired nr){ ... }

我想添加一个可选参数,而不影响预先存在的调用者方法。我的意思是说我想通过以下方式调用myMethod:

Required req = new Required();
NotRequired nr = new NotRequired();
myMethod(req);
myMethod(nr);

我碰到了java optional parameter in methods,这让我觉得只有在Java中使用Builder模式才有可能,但是我想我的情况是完全不同的。如果可以的话,任何建议将不胜感激!

3 个答案:

答案 0 :(得分:4)

如何创建两个方法:

pi-fts6q                   1/2     Running   0          52s

当您只需要带有“必需”参数的方法时,请调用第一个,如果您需要同时需要“必需”和“非必需”的方法,请调用第二个

答案 1 :(得分:2)

您可以只使用两种方法,也可以myMethod(req)调用myMethod(req, nr)

public void myMethod(Required req){
    myMethod(req, new NotRequired());
}

public void myMethod(Required req, NotRequired nr){
    // ...
}

因此,如果您只想使用所需的参数,则可以调用myMethod(req),或者如果您想同时使用这两个参数,则可以调用myMethod(req, nr)

答案 2 :(得分:0)

使用不同的签名重载您的方法。现有方法的签名不变。