Я пытаюсь понять перегрузку методов, и у меня есть эти методы.
Код: Выделить всё
public void method(int a){
System.out.println("int a");
}
//implementing interface method
@Override
public void method() {
System.out.println("interface");
}
//varargs
public void method(int ... a){
System.out.println("int ... a");
}
Код: Выделить всё
int[] a = new int[5];
stack.method();
stack.method(1);
stack.method(5,6);
stack.method(null);
stack.method(a);
интерфейс
int a
int ... a
int ... a
int ... a
Насколько я знаю, программа не должна компилироваться из-за неоднозначности, но все равно компилируется. Разве компилятор не должен выдать ошибку?
Подробнее здесь: https://stackoverflow.com/questions/385 ... nd-varargs