簡體   English   中英

調用具有一個可選參數的方法

[英]Call a method having one optional parameter

我遇到了類似的解決方案,但我需要更多信息。 根據我的用例,我創建了一個方法,該方法帶有兩個參數,其中一個是必需的,另一個是可選的。

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可選參數,這使我認為只有在Java中使用Builder模式才有可能,但是我想我的情況是完全不同的。 如果可以的話,任何建議將不勝感激!

創建兩個方法呢:

public void myMethod(Required req){ }

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

當您只需要采用Required參數的方法時,請調用第一個,如果您需要同時需要和不需要的方法,請調用第二個

您可以只使用兩種方法, 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)則可以調用myMethod(req) myMethod(req, nr)

用不同的簽名重載您的方法。 先前存在的方法的簽名不變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM