null
एक संदर्भ है और यह केवल null
प्रकार है, यानी null
ऑब्जेक्ट प्रकार नहीं है। लेकिन, जब मैं निम्न कोड स्निपेट चलाता हूं तो मुझे आश्चर्य हुआ कि जब मैं विधि method(null);
पर शून्य पास करता हूं तो यह method(String s)
method(Object o)
पर कॉल करता है।नल संदर्भ प्रकार का है, क्या यह एक स्ट्रिंग संदर्भ या ऑब्जेक्ट संदर्भ है?
यदि null
स्वयं जावा द्वारा परिभाषित एक प्रकार है और ऑब्जेक्ट प्रकार नहीं है, तो यह method(String s)
method(Object o)
क्यों नहीं कहता है?
public class Test {
public static void main(String[] args) {
method(null);
}
public static void method(Object o) {
System.out.println("Object impl");
}
public static void method(String s) {
System.out.println("String impl");
}
}
संपादित
मैं एक और विधि जोड़ लिया है:
public static void method(Integer s) {
System.out.println("String impl11");
}
अब संकलक त्रुटि The method method(Object) is ambiguous for the type Test
देता है।
Integer a = null;
यदि यह कानूनी है, तो मुझे संकलन-समय अपवाद क्यों दिखाई देता है?
भी http://stackoverflow.com/questions/28470540/does-this-mean-null-equals-nullpointerexception –
@ThomasStets देख मैं इसे dublicate qustion – Priya
@Priya यह है भी नहीं मिलता है। प्रश्न पढ़ें, यह अलग-अलग प्रकार के विधि पैरामीटर को छोड़कर, वही चीज़ पूछता है। – BackSlash