जिज्ञासा से बाहर मैंने इस उदाहरण की कोशिश की।जावा ऑब्जेक्ट/स्ट्रिंग विधि ओवरलोड
public class Class1 {
public void method(Object obj){
System.out.println("Object");
}
public void method(String str){
System.out.println("String");
}
public static void main(String... arg){
new Class1().method(null);
}
}
आउटपुट "स्ट्रिंग" है। मैं जानना चाहता हूं कि जेवीएम किस प्रकार स्ट्रिंग को तर्क के रूप में लेने के लिए विधि का आह्वान करने का निर्णय लेता है, न कि ऑब्जेक्ट।
क्या यह एक संकलन त्रुटि नहीं है? अस्पष्ट मानकों के बारे में कुछ? – Thilo
स्पष्ट रूप से नहीं। काश ये होता। – Thilo
इस बारे में कुछ भी अस्पष्ट नहीं है, @ थिलो। अगर पहली विधि 'इंटेगर' और दूसरी 'स्ट्रिंग' को स्वीकार कर लेती है तो यह संदिग्ध होगा, तब से उनमें से कोई भी दूसरे की तुलना में "अधिक विशिष्ट" नहीं होगा। – Joni