Перегрузка методов Java и переменные аргументыJAVA

Программисты JAVA общаются здесь
Anonymous
Перегрузка методов Java и переменные аргументы

Сообщение Anonymous »


Я пытаюсь понять перегрузку методов, и у меня есть эти методы.

Код: Выделить всё

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

Вернуться в «JAVA»