有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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) 个答案

  1. # 1 楼答案

    使用不同的签名重载方法。预先存在的方法的签名不会更改

  2. # 2 楼答案

    创建两种方法怎么样:

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

    当您只需要获取必需参数的方法时,然后调用第一个,如果您需要同时需要必需和非必需参数的方法,则调用第二个

  3. # 3 楼答案

    您可以同时使用方法和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)