簡體   English   中英

如何使用varargs重載方法?

[英]How to overload method with varargs?

我有一個重載保存方法的服務。 但問題是,當我想用​​4個變量調用此方法時,它會產生編譯錯誤。

Incompatible type: String cannnot be converted to Task

有沒有辦法調用第一個保存方法而不更改其方法名稱?

public void save(String message, Object... os) {//first save
    adapter.save(formatMessage(message), os);
}

public void save(String username, Task task, String message, Throwable ex) {//second save
    adapter.save(formatMessage(username, task, message));
}

我打電話給4個變量;

myService.save("test", request.getMethod(), request.getRequestURI(),
            Integer.valueOf(request.getContentLength()));

我認為你的兩種方法做了兩件不同的事情; 略有不同,但不同。 因此:你只考慮在這里使用不同的名字!

請記住,不應輕易使用重載,並且您提供的示例不會從中受益。

除此之外:你一定要看看你的“命名”; 正如os確實說的那樣......沒有關於這些論點。 從代碼質量的角度來看,我想知道它是否會好得多:

public void saveRequestDetails(String message, Request request) {

而不是你現在正在做的事情。

暫無
暫無

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

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