ลายเซ็นวิธีการรวมถึงประเภทการคืนสินค้า
คอมไพลเลอร์จะละเว้นเมื่อต้องตรวจสอบรายการที่ซ้ำกัน สำหรับ 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();
}
}
สร้างโครงการไปที่ไดเร็กทอรี bin คัดลอกCaller.cass ที่ใดที่หนึ่ง จากนั้นเปลี่ยนวิธีการที่เรียกว่า:
public int aMethod() {
return 0;
}
สร้างโครงการคุณจะเห็นว่าทั้ง Calling.class และ Caller.class มีการประทับเวลาใหม่ แทนที่ Caller.class ด้านบนและเรียกใช้โครงการ คุณจะมีข้อยกเว้น:
java.lang.NoSuchMethodError: it.prova.Called.aMethod()Ljava/lang/String;