Varargs超载

时间:2013-03-20 04:46:19

标签: overloading variadic-functions

我只是尝试使用Varargs做一些事情:

刚遇到一个问题:

class A {
public void func(int... a) {
     System.out.println("int... a");
}
   public void func(double... b) {
     System.out.println("double... b");
 }
}

 public class B {
 public static void main(String... args) {
       A a = new A();
    a.func(); //Getting no compilation error;instead func(int... a)  is    
                //being called
  }
 }

将A类修改为:

class A {

public void func(int... a) {
     System.out.println("int... a");
}

public void func(boolean... b) {
     System.out.println("boolean... b");
 }
 }

现在我收到编译时错误。 只是想知道为什么在与int和double一起使用时不会发生这种情况。但现在只发生了int和boolean。我理解歧义,但这也应该在第一种情况下发生。 我正在使用java 7。 它只发生在布尔的情况下。 你能不能帮我提供解决方案吗?

感谢。

0 个答案:

没有答案