PHƯƠNG PHÁP CHỮ KÝ BAO GỒM KIỂU TRỞ LẠI.
Trình biên dịch bỏ qua nó khi phải kiểm tra các bản sao. Đối với Java là bất hợp pháp khi có hai phương thức với chữ ký chỉ khác nhau bởi kiểu trả về.
Hãy thử điều đó:
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();
}
}
Xây dựng dự án, vào thư mục bin, sao chép Caller.cass vào đâu đó. Sau đó, thay đổi phương thức được gọi:
public int aMethod() {
return 0;
}
Xây dựng dự án, bạn sẽ thấy rằng cả Called.class và Caller.class đều có dấu thời gian mới. Thay thế lớp Caller.class ở trên và chạy dự án. Bạn sẽ có một ngoại lệ:
java.lang.NoSuchMethodError: it.prova.Called.aMethod()Ljava/lang/String;