使用varargs进行模糊重载

时间:2013-12-22 00:48:41

标签: java scjp

我正在尝试使用方法重载,我遇到了这个令人费解的场景:

class Dims {

void checkThis(long s) {System.out.println("long");}
void checkThis(int s) {System.out.println("int");}
void checkThis(long... s) {System.out.println("longs...");}
void checkThis(int... s) {System.out.println("ints...");}

public static void main(String[] args) {

    Dims d = new Dims();
    d.checkThis(45); // Prints int
    d.checkThis(43,45); // Error: The method checkThis(long[]) is ambiguous for the type Dims
} 

}

编译器在最后一行抛出一个错误,说它无法找出要调用的方法,我无法弄清楚为什么?请帮忙。

0 个答案:

没有答案