使用单个arg和varargs进行重载

时间:2016-04-03 14:27:32

标签: java overloading variadic-functions

假设我有以下两个功能:

«data Raw ...»

它会编译吗? 如果用foo调用哪个foo(“hi”)?

1 个答案:

答案 0 :(得分:2)

  

它会编译吗?

没有。因为你的两个方法都没有返回类型。

如果您将其设置为void

public void foo(String str){
    System.out.println(str);
}

public void foo(String... str){
    System.out.println("varargs");
    for(String s: str){
        System.out.println(s);
    }
}

然后它将编译。

  

如果用foo("hi")调用哪个foo?

将调用foo(String str)方法,您可以轻松检查它。