Yöntem NULL parametre için Aşırı yükleme
Parametreleri ile üç yöntem ekledim:
public static void doSomething(Object obj) {
System.out.println("Object called");
}
public static void doSomething(char[] obj) {
System.out.println("Array called");
}
public static void doSomething(Integer obj) {
System.out.println("Integer called");
}
Arıyorumbir şey(null)o zaman derleyici hata olarak atıyorbelirsiz yöntemler. Yani sorun çünküİnteger ve char[] yöntemleriyaTam sayı ve Nesne yöntemleri?
CEVAP
Java her zaman geçerli bir yöntem en özel geçerli sürüm (JLS §15.12.2) kullanmaya çalışır.
null türleri Object, char[] Integer için geçerli bir değer. Bu nedenle tüm 3 Sürüm geçerlidir, Java en belirgin olanı bulmak zorunda.
Object char[] süper-türü olduğundan dizi versiyonu Object-sürüm daha özeldir. Bu yüzden bu iki yöntem varsa, char[] sürüm seçilecektir.
char[] Integer sürümleri hem de mevcuttur, o zamanher ikisi deObject ama daha spesifik bunların hiçbiri diğerinden daha çok özeldir, Java aramak için hangi bir karar olamaz. Bu durumda uygun türü için bağımsız döküm arama yapmak istediğiniz açıkça belirtmek Zorundasınız.
Uygulamada bu sorun, bir şeyden daha çok nadiren oluşur. Bunun nedeni, sadece açıkça BM özel yerine bir türde bir değişken (Object) null ile veya bir yöntem aradığın zaman gerçekleşir.
Tam tersine, aşağıdaki çağırma gayet anlaşılır olurdu:
char[] x = null;
doSomething(x);
Hala null Java aramak için tam olarak ne bilir değerini yolunuz olsa da, dikkate değişkenin türü alacak beri.

Nasıl aşırı bir yöntem değişmezini par...
Bu tip 'genel tür parametre olara...
Ne zaman Eclipse parametre listesi içi...
NuGet Paketi geri proje Çeşitli Dosyal...
Neden yok't yakut yöntem aşırı yü...