ПІДПРИЄМСТВО МЕТОДУ Включає ТИП ПОВЕРНЕННЯ.
Компілятор ігнорує це, коли має перевірити наявність дублікатів. Для Java заборонено використовувати два методи, підпис яких відрізняється лише типом повернення.
Спробуйте:
public class Called {
public String aMethod() {
return "";
}
}
public class Caller {
public static void main(String[] main) {
aMethod();
}
public static void aMethod() {
Called x = new Called();
x.aMethod();
}
}
Створіть проект, перейдіть до каталогу бін, скопіюйте кудись Caller.cass . Потім змініть названий метод:
public int aMethod() {
return 0;
}
Побудувавши проект, ви побачите, що і Called.class, і Caller.class мають нову часову позначку. Замініть клас Caller.clas вище та запустіть проект. У вас буде виняток:
java.lang.NoSuchMethodError: it.prova.Called.aMethod()Ljava/lang/String;