YÖNTEM İMZASI İADE TİPİNİ DAHİLDİR.
Derleyici, kopyaları kontrol etmesi gerektiğinde onu yok sayar. Java için, imzanın yalnızca dönüş türüne göre farklılık gösteren iki yönteme sahip olması yasa dışıdır.
Bunu dene:
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();
}
}
Projeyi oluşturun, bin dizinine gidin, Caller.cass dosyasını bir yere kopyalayın . Ardından çağrılan yöntemi değiştirin:
public int aMethod() {
return 0;
}
Projeyi oluşturun, Called.class ve Caller.class'ın yeni bir zaman damgasına sahip olduğunu göreceksiniz. Yukarıdaki Caller.class'ı değiştirin ve projeyi çalıştırın. Bir istisnanız olacak:
java.lang.NoSuchMethodError: it.prova.Called.aMethod()Ljava/lang/String;