[英]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.