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