मैं जावा कल्पना की कमियों के संदर्भ में an answer to another question में यह देखा था,:क्या यह वास्तव में चौड़ा बनाम ऑटोबॉक्सिंग है?
अधिक कमियों रहे हैं और यह एक सूक्ष्म विषय है। this की जाँच करें:
public class methodOverloading{ public static void hello(Integer x){ System.out.println("Integer"); } public static void hello(long x){ System.out.println("long"); } public static void main(String[] args){ int i = 5; hello(i); } }
यहाँ "लंबे" मुद्रित किया जा सकता है (इसे अपने आप को चेक नहीं किया गया है), क्योंकि संकलक choses> autoboxing से अधिक चौड़ा। ऑटोबॉक्सिंग का उपयोग करते समय सावधान रहें या इसका उपयोग न करें!
हम चाहते हैं कि यह वास्तव में autoboxing के बजाय चौड़ा करने का एक उदाहरण है, या यह कोई अन्य विषय कुछ है यकीन है?
मेरी शुरुआती स्कैनिंग पर, मैं इस बयान से सहमत होगा कि आउटपुट i
के आधार पर "लंबा" होगा, जो कि आदिम के रूप में घोषित किया जा रहा है। हालांकि, अगर आप
hello(Long x)
उत्पादन के लिए
hello(long x)
बदल "Integer" प्रिंट होगा
क्या वास्तव में यहाँ हो रहा है? मैं जावा के लिए कंपाइलर्स/बाइटकोड दुभाषियों के बारे में कुछ नहीं जानता ...
निश्चित रूप से यह चौड़ा हो रहा है। Int लंबे समय तक चौड़ा है। – EJP