Неоднозначная перегрузка с varargs

Я экспериментировал с перегрузкой метода и наткнулся на такой загадочный сценарий:

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
} 

}

Компилятор выдает ошибку в последней строке, говоря, что он не может определить, какой метод вызвать, я не мог понять, почему? Пожалуйста помоги.


person user1307895    schedule 22.12.2013    source источник
comment
Как уже отмечалось, это было исправлено в Java 7, которую вы должны использовать.   -  person Brian Roach    schedule 22.12.2013
comment
Спасибо всем за комментарии.   -  person user1307895    schedule 22.12.2013