繁体   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